を期待することを主張しますのChimeManagerは複数回呼び出されます と私はそれが私のメソッドに一致する前に呼び出される必要がある方法を指定したくない。Rhinoのモックは、任意のコール・マッチが引数私は、次のコードをテストしたい
// i dont like this repeat twice because this ties the test code to much to the production code
ChimeManager.AssertWasCalled(x => x.AddConfig(Arg<ChimeConfigData>.Matches(
y => y.Key == ChimeKey.Create(ChimeType.HighChime, callQueueData.Name)),
y => y.Repeat.Twice));
私はむしろ何かのように言いたい:
ChimeManager.AssertWasCalled(x => x.AddConfig(Arg<ChimeConfigData>.Matches(
y => y.Key == ChimeKey.Create(ChimeType.HighChime, callQueueData.Name)),
y => y.Repeat.Any/y.Match.Any));
Unfortunatley Repeat.Any、この場合では無効である、任意のは、何のMatch.Anyありません。
このメソッドが指定された引数で呼び出されたと主張できますが、呼び出される頻度は関係ありません。メソッドへの呼び出しの1つが、アサーション以外の指定された引数と一致しても失敗することはありません。
okこれは、私がこのシナリオで "実際の" ChimeManagerを使用し、嘲笑されていないChimeManagerを使用し、ChimeManagers設定をアサートする必要があることを意味します。私はそれを嘲笑すべきだと思ったので、私はこの新しいアプローチが好きです。どうも – leozilla