1

いくつかのロギングについて単体テストを行っています

私のコード例の MyLoggingMethod (拡張メソッド) の下で、log.InfoFormat を多数のパラメーターで呼び出す必要があります。渡されるパラメーターの数や内容は気にしません。最初のパラメーターからログに記録されたものを確認したいだけです。

私は 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 に答える