2

テストしているオブジェクトが作成されたときに呼び出される依存関係があります。ただし、それ以降は呼び出さないでください。どのように私はそのようなテストを書くでしょうか?

この行だけをテストとして使用したいと思います(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!")))
4

1 に答える 1

2

これが私がそれを行う方法です:

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

これにより、一度だけ呼び出されるようになり、指定したようにセットアップコードによってトリガーされます。

于 2012-01-27T21:49:54.933 に答える