1

そこで、Rails のテスト状況を調査することにしました。ここでいくつかの受け入れられた回答を読んだ後、Railsのテストドキュメントがいかにひどいものであるかについて話しているので、私は同意し始めています。これまでのところ、私はどうやら Rails のテストを理解している人ではないようです。フレームワークについては十分に理解しているのですが、そう思っていました。

Shoulda は使用するのに適したプラグインであると読んだので、使用しています。私の最初のテスト:「メソッドに ID パラメーターが必要であることを確認する」...うーん、これは理にかなっていると確信しています。コントローラーの before_filter :validate_id が実際に機能することを確認したいと思います。これは、インデックスの GET が想定どおりに機能することをテストするために必要な 3 つのステップのうちの 1 つです。不合格!明らかに、テスト環境は通常の Rails スタックとは異なる方法で実行されます。

...
lib/action_controller/base.rb:524:in `process_without_filters'
...

ActionController::TestCase が get {} を使用している場合、フィルターを含めることに関する情報はほとんど得られません。これを理解するには、どこで「Rails テスターのクラブ」に参加すればよいですか?

  context "GET :index requires id" do

    setup {      
      get :index
    }

    should_redirect_to('/') { }

  end
4

2 に答える 2

0

失敗が before_filters と関係があると確信していますか? 私はそうは思わない。スタックをさらに調べて、他のエラーを探します...ログイン要件で問題なくアプリをテストできます。

インデックスには ID が必要だと主張していますが、ID なしでリクエストしています。IDがないからエラーになるの?おそらく、それをキャッチするか、assert_raises で失敗モードをテストする必要があります。

于 2009-02-19T22:47:04.240 に答える
0

問題はおそらく別の場所にあるというアンドリューに同意します。before_filters を備えたコントローラーで動作する機能テストがたくさんありますが、指定された問題に遭遇したことはありません。

于 2009-04-22T02:08:48.113 に答える