MSpec -> 如何验证一个方法被调用

MSpec -> How to verify that a method is called

我在我的移动服务应用程序中使用 MSpec。我想验证当传入的参数为空时,是否调用了我的自定义记录器上的方法。这可能吗?

代码

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

您可以将 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);