2012-03-27 4 views
1

私は、タイムスタンプとのインターフェースILogHandlerのログメソッドを呼び出すC#のログインクラスのユニットテストを書いているときにのように先頭に追加AssertWasCalled:Rhinoのモックは、1つのパラメータが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))); 

これは、依存関係に渡される最初のパラメータは任意の日時であることを、確認します。いくつかの制限を設定する場合は、Arg.Matchesの部分を引数に追加します。

関連する問題