QA@IT
«回答へ戻る

回答を投稿

RSpec自体はテストを記述するためのドメイン特化言語(DSL:Domain Specific Language)を提供するフレームワークなので、まさに「言語」として広い範囲をカバーします。

テストには、視点や範囲の違いで 1.ユニットテスト 2.インテグレーションテスト 3.エンドツーエンドテスト 4.受け入れテストというようにベタからメタ方向に守備範囲の違いで区別があります。

feature spec、request specs、controller spec は、次のように使い分ければよいのではないかと思います。
feature spec : エンドツーエンドテスト
request specs : インテグレーションテスト
controller spec : ユニットテスト

〔補足〕受け入れテストにはCucumberが向いているでしょうが、Turnipの台頭で、受け入れテストもRSpec+Turnipで行われるようになるのではないでしょうか。

RSpec自体はテストを記述するためのドメイン特化言語(DSL:Domain Specific Language)を提供するフレームワークなので、まさに「言語」として広い範囲をカバーします。

テストには、視点や範囲の違いで 1.ユニットテスト 2.インテグレーションテスト 3.エンドツーエンドテスト 4.受け入れテストというようにベタからメタ方向に守備範囲の違いで区別があります。

feature spec、request specs、controller spec は、次のように使い分ければよいのではないかと思います。
feature spec : エンドツーエンドテスト
request specs : インテグレーションテスト
controller spec : ユニットテスト

〔補足〕受け入れテストにはCucumberが向いているでしょうが、Turnipの台頭で、受け入れテストもRSpec+Turnipで行われるようになるのではないでしょうか。