それぞれが同じUI特性を共有する複数の機能にわたってキュウリのシナリオを再利用する方法はありますか?
たとえば、iPhoneアプリを作成している場合、実際に何が表示されているかに関係なく、テーブルビュー画面ごとに実行したい特定のテストがあります。これらは、新しい行の追加、行の削除、並べ替えなどです。
これらをコピーして各機能に貼り付けると、DRYが壊れます。キュウリで一般的なテストまたはテンプレート化されたテストを指定する方法はありますか?それらを必要とする各機能に含めることができますか?
BDDをテストとは考えないでください。これは、アプリが価値がある理由とその使用方法を示す一連の例を提供するものと考えてください。
アプリが各テーブルに同じコードを使用する場合、必要なのは1つの例だけです。私はそれが次のように表現されることを期待します:
Given Quentin has three films listed
When he adds "Kill Bill" to the film list
Then he should be reminded that he already owns it.
Given Quentin has mistakenly added "Twilight" to his favourite films
When he deletes it from the film list
Then it should no longer be in the table.
シナリオをより面白くて人間的なものにできるほど、アプリケーションが価値がある理由を理解できるようになります。これがBDDの真の核心です。テストではありませんが、そもそもなぜコードを書いているのかを知っています。
アプリを本当に欲しがっている人と話すと、アプリが何をすべきかを見つけるのに役立ちます。自分で書いている場合は、ゴム製のアヒルを購入してください。