2012-01-27 11 views
2

私がテストしているオブジェクトが作成されるときに呼び出される依存関係があります。しかし、それ以降は決して呼び出されるべきではありません。どのように私はそのようなテストを書くだろうか?Rhinoモック:AssertNotCalled(読み込み時を除く)

(私はテストライティングのAAAスタイルに従おうとしているので)私はこのテストを私のテストとしたいと思います。ただし、セットアップ中にPublishメソッドが呼び出されたため、このアサーションは失敗します。

Notifier.AssertWasNotCalled(Sub(n) n.Publish(Arg(Of Message).Is.Anything)) 

私が嘲笑した依存関係の呼び出しを「リセット」する方法はありますか?

注:私は初期化後に期待値のMessage引数のプロパティを確認するように設定することができますが、それは私のテストは、より/もろくもろくなり、私は可能であればそれを避けるしたいのですが。ここで

_notifier.AssertWasNotCalled(
    Sub(n) n.Publish(Arg(Of Message).Matches(Function(m) m.property = "yo!"))) 

答えて

2

は、私はそれを行うだろうかです:このよう

_notifier.AssertWasCalled(function(n) p.Publish, function(c) c.Repeat.Once().IgnoreArguments()); 

あなたが示されているようにセットアップコードによってトリガーされるであろう、それは一度だけ呼び出されたことを確認します。

+1

これは素晴らしい動作です!私の場合、メソッドは複数回呼び出されます(スタブ付きメソッドから返されたリストに対して 'each each'を行っています)...しかし、私は単に' Repeat.Times(stubbedList.count) 'を行うことができます罰金(魔法の数字なし)。わーい! –

関連する問題