Я хотел бы знать, какие у вас практики, когда вы тестируете свои классы.
Например, я люблю использовать наследование со своими приборами.
Учитывая два класса BaseClass, SubClass, я делаю два других класса BaseClassFixture и SubClassFixture (SubClassFixture является подклассом BaseClassFixture). Поэтому я уверен, что я не нарушаю код, который использует SubClass в качестве BaseClass (и люди, которые расширяют мой класс, могут быть уверены, что они все делают правильно, создав еще один подкласс моего прибора).
Я также занимаюсь наследованием с интерфейсами.
Например, когда я создаю фикстуру для IList, я проверяю, что любой Add, увеличивает Count на единицу.
Когда у меня есть конкретный класс, который реализует IList, я просто создаю приспособление с именем MyConcreteClassIListFixture.
В этом случае приспособление для моего интерфейса является абстрактным, и я позволил своему подклассу создать экземпляр для моих тестов.
Я думаю, что это своего рода дизайн по контрактам (см. Бертран Мейер), потому что я проверяю инвариант до и после любых испытаний.
Я делаю это особенно с опубликованными интерфейсами или классами.
А вы ... каковы ваши практики ??