MSpec -> Как проверить, вызывается ли метод

Я использую MSpec в своем приложении Mobile Services. Я хочу убедиться, что метод в моем пользовательском регистраторе вызывается, когда переданный параметр имеет значение null. Это возможно?

код

if (someOrg == null || target == null) {
    AppUtils.LogInfo(">>>>> +++ Utils-GetAsNeededItems - Null input");
    return null;
}

person Antarr Byrd    schedule 12.01.2017    source источник


Ответы (1)


Вы можете использовать Moq с MSpec.

// Mock something
Mock<ISomething> mock = new Mock<ISomething>();

ClassToTest sut = new ClassToTest();
sut.WorkMethod(mock.Object);

// Make sure the method TheMethodYouWantToCheck was called
mock.Verify(m => m.TheMethodYouWantToCheck());

Вы также можете использовать перегрузку Verify и убедиться, что она была вызвана один раз или не менее x раз, или не более x раз и т. д.

mock.Verify(m => m.TheMethodYouWantToCheck(), Times.Once);
person CodingYoshi    schedule 12.01.2017
comment
Спасибо попробую при случае. - person Antarr Byrd; 12.01.2017
comment
FakeItEasy также рекомендуется. Он имеет очень чистый API и функционально такой же, как Moq. - person Alexander Groß; 13.01.2017
comment
Можно ли проверить, вызван ли статический регистратор? - person Antarr Byrd; 14.01.2017