Модульные тесты имеют привычку разоблачать проблемы проектирования.
Если этот член может быть реорганизован в virtual
или abstract
abstract class ClassB: IInterface {
protected virtual void Execute();
}
, так что его можно переопределить в производном классе, тогда
заглушка можетбыть созданным
public class StubClass: ClassA {
protected override void Execute() {
//...Do nothing
}
}
В противном случае вы сможете заменить желаемый элемент ключевым словом new
, если не сможете его переопределить.
public class StubClass: ClassA {
protected new void Execute() {
//...Do nothing
}
}
для целей тестирования
//Arrange
var subject = new StubClass();
//Act
subject.methodToUT();
//...