2011-09-09 7 views

答えて

37

mockstubは、より一般的なdoubleのエイリアスです。 contextおよびdescribeのように、それらは互換性をもって使用して仕様の意図をより明確にすることができます。これについては、The RSpec Bookに詳しく説明されています。

+4

ドキュメント 'mock'と' stub'オーバー 'double'を使用することをお勧めします。 あなたはまた、しかし、これらの方法は、下位互換性のためにのみ存在し、可能性が高くなります、テストダブルを作成するために、モックとスタブのメソッドを使用することができます廃止され、将来のバージョン(https://www.relishapp.com/rspec/rspec-mocks/)から削除されました – welldan97

+1

最近のバージョンのrspecでは、 'DEPRECATION:stub is deprecatedのような警告が生成されます。代わりにdoubleを使用してください。 '。 – amoebe

2

aliasesと思われるのは、:__declared_asがメッセージ用に使用されていないようです。

1

ダブルス

我々は非決定的な特性を持つコンポーネントに依存したときに、私たちは、ファイルが壊れることがあり、ディスクに障害が発生し、ネットワークのタイムアウト、およびサーバのスペックを実行しているの途中でダウンして行きます。これらは制御できないものなので、仕様を実行すると一貫性のない驚くべき結果につながる可能性があります。これらの依存関係の実際の実装から私たちの例を切り離すことができます。システムの動作シーケンスに基づい

スタブ

。スタブはこれに最適です。各例で異なるシーケンスを指定できるためです。例: - ランダムジェネレータの場合、明らかに非決定の原因です。実際のランダムジェネレータを安定したシーケンスに置き換える必要があります。

モック

我々はまだ存在しないかもしれない別のオブジェクトからいくつかのサービスを必要とするいくつかの時間。このような場合、モックオブジェクトを導入することができます。現在想定されているオブジェクトとして動作するようにプログラムすることができます。私たちがインタラクションモックに焦点を当てると、オブジェクトをもっと簡単に実現できます。また

関連する問題