2012-03-27 68 views
1

我正在寫一個C#登錄級上具有時間戳的接口調用ILogHandler日誌方法單位測試前置像這樣:犀牛製品 - AssertWasCalled當一個參數是DateTime.Now

log(string msg, LogLevel lvl) 
{ 
    _handler.log(DateTime.Now, msg, lvl); 
} 

我初始處理程序方法在處理程序方法中添加了時間戳記,這使得測試處理程序日誌是否被調用變得很容易,但是現在我添加了時間戳,我不確定應該如何執行測試。

有什麼建議嗎?

謝謝:)

回答

2

可以提供論據的期望:

handler.AssertWasCalled(h => h.Log(Arg<DateTime>.Is.Anything, 
            Arg<string>.Is.Equal(msg), 
            Arg<LogLevel>.Is.Equal(lvl))); 

這將檢查,傳遞給依賴第一個參數是任何的DateTime。如果您想設置一些限制,請將Arg.Matches部分添加到參數。