Тестирование абстрактных классов бетонных методов - PullRequest
8 голосов
/ 19 сентября 2008

Как бы я спроектировал и организовал тесты для конкретных методов абстрактного класса? Конкретно в .NET.

Ответы [ 6 ]

9 голосов
/ 19 сентября 2008

Вы должны создать подкласс, который реализует абстрактные методы (с пустыми методами), но ни один из конкретных. Этот подкласс должен быть только для тестирования (он никогда не должен входить в ваш производственный код). Просто игнорируйте переопределенные абстрактные методы в своих модульных тестах и ​​сосредоточьтесь на конкретных методах.

3 голосов
/ 20 сентября 2008

Используйте Rhino Mocks, он может генерировать реализации абстрактного класса во время выполнения и вы можете вызывать неабстрактные методы.

1 голос
/ 19 сентября 2008

Первое, что приходит на ум, - это протестировать эти методы в конкретном дочернем классе.

0 голосов
/ 19 сентября 2008

Вы должны определить и создать конкретный тестовый класс, который наследуется от абстрактного. Как правило, это будет легкая прокладка, которая делает только вызовы.

0 голосов
/ 19 сентября 2008

Я всегда использую объект Stub / Mock

0 голосов
/ 19 сентября 2008

Есть ли какая-либо причина не просто включить это в тестирование одного из экземпляров?

Если это не сработает, вы, вероятно, могли бы создать подкласс просто для тестирования без собственных уникальных функциональных возможностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...