У меня возникли проблемы с определением, какой тип теста удваивает эти два класса.
Они оба содержат (базовое) поведение.
Их отличие в том, что первый в реальном контексте не будет работать, а второй будет работать (это будет класс, который ничего не делает, но он будет работать! Второй будет зависать).
Они оба кажутся мне Тестовыми шпионами . Они оба предоставляют способ узнать, был ли вызван метод Run()
или нет. (это причина существования этих классов!).
Я не могу использовать второй, как он есть во всех контекстах, так как я не могу также использовать только первый во всех контекстах.
Я мог бы реорганизовать их обоих в один, но, возможно, это могло бы стать менее понятным при чтении кода.
class FilterTestSpy : IFilter {
private bool hasBeenRan = false;
...
public bool HasBeenRan { get { return hasBeenRan; } }
public void Run() {
hasBeenRan = true;
}
}
class FilterTestSpy2: IFilter {
private bool hasBeenRan = false;
...
public bool HasBeenRan { get { return hasBeenRan; } }
public void Run() {
...some logic...
hasBeenRan = true;
}
}
Я знаю, что есть насмешливые рамки, блаблабла, это не то, о чем я здесь спрашиваю.
Спасибо!