Cucumber と Ruby on Rails でテストを書いているとき、私は常にこの質問を自問しています。「X を作成する方法」と「X を作成できるか」をいつテストするか
「X を作成するにはどうすればよいですか」には、ユーザーが X を作成するために必要な実際の手順 (通常はフォームを使用) のテストが含まれているようです。新しいページに移動し、「create X」リンクをクリックし、フォームに入力して create をクリックすると、X が作成されたことがわかります。
別の「x を作成できますか」は、システム、モデル、およびコントローラーが X を作成する能力を処理するかどうか、つまり、それらが適切に配線されているかどうかです。
通常、これらのシナリオの両方をテストしますか? サイド プロジェクトの Q&A パートを書き始めたばかりで、テストを次のように書くかどうかを決めることができませんでした (背景を削除しました。背景は少し長いです)。
When I click "Ask the seller a question"
And I fill out the form with a question and submit the form
Then I should see that the question has been created
And the user that posted the job has been notified
それとももっと似ているべきですか
When I ask the seller a question
Then I should see that the question has been posted
And the user that posted the job has been notified
違いは、フォームまたはファクトリを介して作成するかどうかですよね? Rspec はどこで機能するのでしょうか。「X を作成できますか」をテストする必要があると思います。それは、キュウリを使用してそれをテストするべきではないということですか?
私は本質的に「きゅうりで何をテストするのか」を見ていると思いますが、これをもっと複雑にしているのかもしれませんが、自分で結論を出すのに苦労しています。あなたが持っている洞察は素晴らしいでしょう。