Rails Guides または Rails を使用した Agile Web Development で通常 HelperTest と呼ばれるこれらのクラスについての言及は見つかりません。ネットを検索すると、ほとんどの人がそれらを使用してヘルパーをテストしていることがわかります。しかし、なぜ scaffold はモデル クラスごとにこれらのいずれかを作成するのでしょうか? そして、なぜそれは test\units の下に置かれるのですか? これらがどこでどのように使用されるべきかについての良い例に感謝します。scaffold によって生成されたヘルパー ファイルが使用されていない場合、単に削除するのは間違っていますか? 前もって感謝します
質問する
146 次
1 に答える
1
ご指摘のとおり、スキャフォールド ジェネレーター (ここでは「投稿」用) は以下にヘルパー テストを作成しますtest/unit/helpers
。
test
├── fixtures
│ └── posts.yml
├── functional
│ └── posts_controller_test.rb
├── integration
├── performance
│ └── browsing_test.rb
├── test_helper.rb
└── unit
├── helpers
│ └── posts_helper_test.rb
└── post_test.rb
ヘルパーは単独でテストする必要がある単なるメソッドであるため、これらは単体テストです。また、ビューを軽量に保つ必要があると考えている場合は、ヘルパーが多くのロジックを持つことになり、モデルと同じようにテストする必要があることを意味する可能性があります。
したがって、このヘルパーが与えられた場合 (app/helpers/posts_helper.rb 内)
module PostsHelper
def hello
content_tag :div, :class => "detail" do
"hi"
end
end
end
次のようにテストを書くことができます:
require 'test_helper'
class PostsHelperTest < ActionView::TestCase
test "hello" do
assert_equal(hello, "<div class=\"detail\">hi</div>")
end
end
これらは単なるメソッドであるため、単体テストで使用するのと同じマッチャーを使用します ( assert_equal
, assert_match
); assert_dom_equal
ここでも重宝します。( http://cheat.errtheblog.com/s/assert_dom_equal/を参照)
これが役立つことを願っています:)
カイル
于 2012-09-30T06:48:55.827 に答える