0

私は現在 BDD を始めています - 以前にテストを書いたことがありません。私は常に、モデルをファットに保ち、コントローラーをスリムに保つようにしています。

どう思いますか? コントローラーのスペックは必要ですか?

よろしくお願いします

4

3 に答える 3

2

はい。正しい呼び出しが行われていること、および必要に応じて正しいリダイレクトと行われていることをテストし、正しいページがレンダリングされていることをテストします。したがって、アプリケーションが期待どおりに動作することをテストしてください。

于 2009-09-12T09:19:31.813 に答える
0

私自身は、テストで高レベルのコードカバレッジを求めることと、非常に脆弱な可能性のある一連のテストを維持するための長期的なコストとのバランスを理解しようとしています。

次のコントローラーがあるとします。

    try {
        result = mode.doSomething();

        if  (result.count == 0 )
             message = "none found"
             redisplay criterion page
        else if (result.count == 1 ) 
             display detail page
        else 
             display list page
    } catch exception {
        message = "bad things happened, please try again"
        redisplay criterion page
    }

暫定的な考えは、3つのカウントケース(0、1、多く)のテストは、例外ケースのテストよりも価値が低く、変更される可能性が高いということです。a)のため、価値が低くなります。他のテストでは、ページ表示の問題が検出されますb)。テストは、コードを単純に再現することに非常に近くなります。

    code: go to page X
    test: did you go to page X?

開発者がXを間違って選択すると、テストも間違ってしまいます。UIのユーザビリティテストで、Yの方が表示に適していることが判明した場合は、コードとテストを同時に更新します。テストは本当に何かを達成しましたか?

一方、例外ケースは通常のUIテストでは実行するのが非常に難しく、モックでテストするのは非常に簡単です。そして、例外に続く振る舞いは、私たちが本当に正しくする必要があるものです。

于 2009-09-12T10:17:48.030 に答える
0

どう思いますか? コントローラーのスペックは必要ですか?

それらを優れた統合テストと組み合わせれば、それらは必要ないと思います。私はアプリケーションの使いやすさが非常に重要だと思っているので、コントローラーやビューを変更するたびに、アプリケーションをクリックしてその感触を確かめています。私の意見では、コントローラーとビューの「ばかげた」テストを作成しても、それほど価値はありません。

統合テストにはCucumberを使用しています。これにより、スタック全体をテストし、アプリケーションが希望どおりに動作することを確認できます。ビジネス ロジック (ファット モデル) には、今でも RSpec を使用しています。

于 2009-09-18T08:13:57.777 に答える