5

Rails 5.1のリリースでは、システムテストが含まれていました。つまり、RailsでもJavaScriptをテストできます。 Railsガイドでは、サンプルテストの両方の方法で作成する方法を説明しています:システムテストとビア統合テストを経由します。Rails 5.1の統合テストでシステムテストを選択するタイミングは?

ここで問題になるのは、Rails 5.1より前は、統合テストで複雑なテストケースを作成していたことです。しかし、今ではテストケースを書くための2つの選択肢があります。 私は統合テストで

test: should create article 

のようなテストケースを書くことができますが、私はまた、システムテストで同じテストケースを書くことができます。

したがって、テストケースを作成するシステムテストと統合テストを選択するタイミングを選択する必要がありますか?

+1

統合テストではブラウザは使用されないため、jsをテストすることはできません。 – MikDiet

答えて

5

短い答えがMikDietによって与えられました。長い答えを得るには、システムテストと統合テストでdocumentationをチェックしてください。

システムテストでは、アプリケーションとの完全なユーザー操作をテストするために、リアルブラウザまたはヘッドレスドライバでテストを実行できます。

大まかに言うと、Javascriptとやり取りするすべてのテストは、システムテストとして実行する必要があります。しかし、ブラウザーの画面サイズを指定できるので、レスポンシブなレイアウトをテストするのにも使用できます。

インテグレーションテストは、アプリケーションのさまざまな部分がどのように相互作用するかをテストするために使用されます。これらは一般に、アプリケーション内の重要なワークフローをテストするために使用されます。

統合テストはブラウザで実行されないため、テストは異なります。結果ページのHTMLとやりとりすることはできますが、という静的な出力が出力されていることに注意してください。

統合テストでは、ほとんどの場合、コントローラの動作の動作を見ていて、ユーザーが表示したり操作したりする動作にはほとんど影響しません。マニュアルのこの部分は、どの統合テストがすべてであるかを理解するのに役立ちます。Functional Tests for Your Controllers

+0

システムテストは機能テストの改善と置き換えですか? – Marklar

+1

私はそれを言わないでしょう。システムテストは、MinitestがRSpecの機能仕様と同等以上のものです。高いレベルでは、ほとんど同じです。低レベルでは、システムテストはセットアップが少し簡単で、Railsと緊密に統合されているので、今のところ少し早いでしょう。しかし、私が知っている限り、RSpecはシステム仕様のAPIを使用して、機能仕様を同じにすることを考えています。 – jdno

関連する問題