それぞれの機能テストでさまざまな形式を自動的にテストしたいと思います。これを実現する方法は、'test'メソッドを自分のクラスメソッドでラップすることのようです。
def self.test_all_formats(name)
[ "xml", "json" ].each do |fmt|
test "#{name} #{fmt}" do
yield(format)
end
end
end
test_all_formats "index" do |fmt|
get :index, { :format => fmt }
assert_response :ok
end
残念ながら、各テストの結果、次のエラーが発生します。
NoMethodError:AccountsControllerTest:Classの未定義のメソッド`get'。
ブロックの実行はテストの実行まで延期されますが、インスタンスではなくクラスのコンテキストでブロックを実行しようとしています。
この自動テストを実現する方法はありますか?