7

Rhino モックを使用する場合、いつ「VerifyAll」を使用するのが適切で、いつ「アサート」を行う必要がありますか?

4

2 に答える 2

9

VerifyAll と Verify は、いくつかのメソッドが呼び出されたことを確認するために使用されます (場合によっては、メソッドが呼び出されたパラメーターを検証します)。これは「相互作用ベースのテスト」と見なされ、テスト対象のシステムがその依存関係の 1 つでメソッドを呼び出していることを確認する場合に使用されます。

通常、アサートは、返された値が正しい値であることを確認することを意味します。アサートは、「状態ベースのテスト」と呼ばれるものに使用されます。これは、基本的に、テスト対象のシステムが実行された後の状態を検証することです。

これを確認してください

また、Mock と Stubを区別します。

于 2009-03-28T02:29:06.497 に答える
3

VerifyAll は、RhinoMocks を使用する古いスタイルに属していると思います。そこでは、記録ステップと再生ステップがあり、その後ですべての期待値を検証します。このモデルでは、記録ステップ中に期待値を設定します (たとえば、このメソッドがパラメーター x、y、z などで呼び出されることを期待します)。

RhinoMocks の新しいバージョンでは、優先パターンとしてArrange-Act-Assert (AAA)構文が導入されています。このパターンを使用すると、テスト メソッドの最後でアサーションを使用する方が理にかなっています。VerifyAllExpectations() を使用することは引き続き可能ですが、個人的には、テストの最後にすべてのアサーションがブロック内で発生した方が読みやすいと思います。

ですから、(とにかく私にとって)答えは、それは個人的な好みだということだと思います。彼が同じテストのいくつかの例を持っている上記のリンクを見て、あなたにとって最も読みやすいものを選んでください.

于 2009-03-28T03:52:37.403 に答える