Если я правильно понимаю ваш вопрос, вам нужно дважды вызывать один и тот же метод во время работы с объектом.
Для этой цели вы можете использовать setupsequence
.
Например, нижеприведенный метод проверки дважды вызывает метод GetNextStuff и возвращает два разных значения каждый раз, когда он вызывается.
[Test]
public void MogMethodThatReturnsADifferentValueWhenCalledASecondTimeUsingSequences()
{
Mock<ISomeService> _mockSomeService = new Mock<ISomeService>();
_mockSomeService.SetupSequence(x => x.GetNextStuff())
.Returns(new SomeStuff {Id = 1, Name = "Real"})
.Returns(null);
Assert.IsNotNull(_mockSomeService.Object.GetNextStuff());
Assert.IsNull(_mockSomeService.Object.GetNextStuff());
}
Вы можете см. Этот блог для получения более подробностей.