シェフがレシピを作成でき、スーシェフがヘッドシェフの承認が必要なレシピを作成できるとします。
ヘッドシェフが自分のホームページを表示すると、自分で作成したレシピが表示されることをテストします。また、承認を待っているレシピがあることを彼女が確認することをテストする必要があります。
これを行うには2つの方法が考えられます。
- ビューに「あなたのレシピ」や「承認待ちのレシピ」などの特定の単語が含まれていることをテストします
- 使用しているhtml要素に不要な属性を追加して、「id=recipe_1」または「data-for-the-sake-of-testing=1」の要素を確認できるようにします。
私はこれらのアプローチの両方が非常に嫌いです。
アプローチ#1がダメな理由
- 信じられないほどもろいテスト。コピーにマイナーな更新を加えるたびに、テストは失敗します。
- i18n?それはこのアプローチでどのように機能しますか?
おそらくもっと多くの理由がありますが、これら2つはかなり巨大です。
アプローチ#2がダメな理由
テストのためだけに余分なマークアップを付けるのは、なんと面倒なことでしょう。ユーザーは、テストのためにダウンロードサイズを大きくしないでください。
これへの良いアプローチは何ですか?私はあなたが考えるどんな言語でも、どんな代替案も聞くことに興味があります。私は主にRuby、Test :: Unit、Minitest、RSpec、Cucumberで考えます(私のCukeスキルは古くなっていますが)が、他の言語/フレームワークの場合これを理解して、私も彼らが何をしているのか見てみたいです。