テストと仕様の違い


12

私はこの時点でコンセプトの問題があり、テスト(UnitTestなど)と仕様(Rspecなど)の違いに関する情報を見つけることができません。

私の知る限り、仕様は統合テストにあり、テストはUnitTestにありますが、それだけです。

違いは何ですか?

回答:


12

次の図をご覧ください。テスト駆動開発(TDD)と受け入れテスト駆動開発(ATDD)の関係を示しています。

受け入れテスト駆動開発図

内側のループTDDが外側のループATDDで囲まれていることに注意してください。要件([承認基準]ボックスで示されている)により、自動化された承認テストの作成が促進され、実装のための単体テストの作成が促進されます。

一般に、RSpecは、テストをビジネスアナリストにとって使いやすい方法で表現したい状況、つまり自動受け入れテスト(黄褐色の円)を作成する状況で使用されます。一方、nUnitのような単体テストフレームワークは、実装レベル(黄色の円)で開発者のTDDの観点から記述された一種の単体テストに特化しています。


良い例はハッシュテーブルです。これは詳細なユニットテストが必要です。受け入れテストの例の小さなセットだけでなく、考えられるすべての入力に対して機能することが期待されるためです。ただし、「良い」顧客の割引を計算するコードは、受け入れテストで十分にカバーされる可能性が高いため、単体テストをまったくまたはほとんど必要としません。
イアン

3

ここにいくつかの異なる用語があるので、ここで何が起こっているのか

  • ユニットテストがあります。他のレベルは、統合テスト、パフォーマンステストなどです。
  • rspecは、上記のレベルのテストの多くに使用できます。たとえば、Capybara機能テストによるモデル、コントローラー、ビューに対するテストです。
  • 「仕様」という言葉は、テストの中心にある仕様に由来します-それは何かを指定します。
  • rspec-agaistブラウザのテストに使用されるフレームワーク。Rubyon Railsアプリケーションで頻繁に使用されます。
  • スペックファイル-rspecファイルは通常_spec.rbで終わり、頻繁にスペックファイルと呼ばれます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.