вопрос: можно ли очистить историю звонков макета (или заглушки)?
(и истории вызовов, я не имею в виду ожидаемого/записанное поведение.)Удалить историю звонков макета
Детали:
Сейчас я хочу пишу следующий код с испытания в соответствии с синтаксисом AAA использованием NUnit и Rhino издевается.
public abstract class MockA
{
private bool _firstTime = true;
public void DoSomething()
{
if (_firstTime)
{
OnFirstDoSomething();
_firstTime = false;
}
}
public abstract void OnFirstDoSomething();
}
[TestFixture]
public class MockATest
{
[Test]
public void DoSomethingShouldSkipInitializationForSequentialCalls()
{
// Arrange
var mockA = MockRepository.GeneratePartialMock<MockA>();
mockA.Expect(x => x.OnFirstDoSomething()).Repeat.Any();
mockA.DoSomething(); // -> OnFirstDoSomething() is called
// here I want clear the call history of mockA
//Act
mockA.DoSomething(); // -> OnFirstDoSomething should NOT be called
mockA.DoSomething(); // -> OnFirstDoSomething should NOT be called
//assert
mockA.AssertWasNotCalled(x => x.OnFirstDoSomething());
}
}
Для удобства чтения я всегда стараюсь сосредоточиться на звонки в разделе Assert об изменениях, которые происходят в разделе Закона.
Однако раздел аранжировки в этом тесте содержит (требуемое) действие, влияющее на историю вызовов mockA.
В результате утверждение не выполняется.
Известно, что я мог поймать «изменение» в истории вызовов, используя приведенную ниже конструкцию, но это делает ожидаемое поведение этого теста менее удобочитаемым.
{
...
mockA.AssertWasCalled(x => x.OnFirstDoSomething(), opt => opt.Repeat.Once());
//Act
mockA.DoSomething();
//Assert
mockA.AssertWasCalled(x => x.OnFirstDoSomething(), opt => opt.Repeat.Once());
}
Мой вопрос: можно очистить историю вызовов макета (не учтенное ожидания)?
К сожалению, это не сработает. Я добавил код «MockA» и некоторые комментарии в тесте, чтобы очистить ожидаемое поведение. –
После нескольких лет TDD я решил опробовать еще один макет NSubstitute Framewerk. Одна из вещей, которую я заметил, - это то, что история звонков с макетами может быть очищена, я хочу с Rhinomock. –