Макет с последовательностью и проверяемостью не дает сбоев, когда он долженC#

Место общения программистов C#
Ответить
Anonymous
 Макет с последовательностью и проверяемостью не дает сбоев, когда он должен

Сообщение Anonymous »

У меня есть небольшая установка с MockSequence, Verifyable и Verify, которая не дает сбоев, и я не понимаю, почему.
В документации мало что описано о макетной последовательности, кроме того, что она существует (см. QuickStart->Разное).
Настройка:

Код: Выделить всё

public interface IMyInterface
{
void Method(string a, string b, CancellationToken? cancellationToken = null);
}

public class MyTestClass
{
private readonly IMyInterface _myInterface;
public MyTestClass(IMyInterface myInterface) { _myInterface = myInterface; }

public void MyMethod()
{
_myInterface.Method("value1", "value2");
//_myInterface.Method("value2", "value3");
}
}

class MyTests
{
[Test]
public void MyTestClassTest()
{
var myMock = new Mock(MockBehavior.Strict);
var sequence = new MockSequence();
myMock
.InSequence(sequence)
.Setup(s => s.Method("value1", "value2", default))
.Verifiable(Times.Once);
myMock
.InSequence(sequence)
.Setup(s => s.Method("value2", "value3", default))
.Verifiable(Times.Once);

var myTestClass = new MyTestClass(myMock.Object);
myTestClass.MyMethod();

myMock.Verify();
}
}
Я хочу проверить, был ли вызван MyMethod по порядку с двумя разными параметрами. Итак, я настроил последовательность, сами вызовы и сделал их проверяемыми.
Если я запускаю этот тест, он горит зеленым, он не дает сбоя, даже если вторая проверяемая настройка не соответствует:
Изображение

Если я удалю последовательность, проверка завершится неудачно, как и ожидалось, но это не принесет мне никакой пользы, поскольку я хочу проверить, выполняются ли вызовы в этом порядке (некоторые действия по замене файлов, например, сделать файл a файлом b и сделать некоторый файл c файлом a).

Подробнее здесь: https://stackoverflow.com/questions/797 ... -it-should
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»