1

我正在围绕我们现有的一些日志进行单元测试

在我的代码示例 log.InfoFormat 中的 MyLoggingMethod(扩展方法)下面,应该使用大量参数调用。我不在乎传入了多少参数 - 或内容 - 我只想验证从第一个参数记录的内容。

我已经编写了 It.IsAnyLoadOfParameters - 但这就是我想要实现的!

        var logMock = new Mock<ILog>();
        var log = logMock.Object;
        log.MyLoggingMethod(new Monkey());
        logMock.Verify(moqLog => moqLog.InfoFormat(It.Is<string>(x => x.Contains("Blah blah blah")), It.IsAnyLoadOfParameters));

以及 log.MyLoggingMethod 中的那种东西是

log.InfoFormat("Blah blah blah {0} {1} {2} {3}", 1, "something", "blah", "four");

我知道我可以放很多 It.IsAny - 但如果可能的话,我想避免这种情况。我只是想检查第一个以确保那里有东西。

4

1 回答 1

3
It.IsAny<object[]>() 

成功了!

    var logMock = new Mock<ILog>();
    var log = logMock.Object;
    log.MyLoggingMethod(new Monkey());
    logMock.Verify(moqLog => moqLog.InfoFormat(It.Is<string>(x => x.Contains("Blah blah blah")),  It.IsAny<object[]>()));
于 2013-11-07T17:01:12.903 回答