respond_with_content_type
マッチャーはshoulda-matchers gem で非推奨になりました (バージョン > 2.0 およびバージョン 1.5.6 では多くの醜い警告)。
ソートボットは、開発者が統合テストを使用する必要があることを示唆していますが、これはリソースの少ないプロジェクトでは必ずしもそうではありません
質問は壊れたスペックを修正する方法ですか?...またはそれらを置き換える方法
参照:
respond_with_content_type
マッチャーはshoulda-matchers gem で非推奨になりました (バージョン > 2.0 およびバージョン 1.5.6 では多くの醜い警告)。
ソートボットは、開発者が統合テストを使用する必要があることを示唆していますが、これはリソースの少ないプロジェクトでは必ずしもそうではありません
質問は壊れたスペックを修正する方法ですか?...またはそれらを置き換える方法
参照:
最も簡単な方法は、出現するものを に置き換えるだけですrespond_with_content_type
:
# spec/controllers/users_controller_spec.rb
describe UsersController do
before{ get :index, :format => :xlsx }
it 'response should be excel format' do
response.content_type.to_s.should eq Mime::Type.lookup_by_extension(:xlsx).to_s
end
end
適切なマッチャーが必要な場合:
# spec/support/matchers/respond_with_content_type_matchers.rb
RSpec::Matchers.define :respond_with_content_type do |ability|
match do |controller|
expected.each do |format| # for some reason formats are in array
controller.response.content_type.to_s.should eq Mime::Type.lookup_by_extension(format.to_sym).to_s
end
end
failure_message_for_should do |actual|
"expected response with content type #{actual.to_sym}"
end
failure_message_for_should_not do |actual|
"expected response not to be with content type #{actual.to_sym}"
end
end
# spec/spec_helper.rb
...
#ensure support dir is loaded
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
...
ところで:既存のソリューションhttps://github.com/tinfoil/shoulda-kept-assign-toshould assign_to
よりもマッチャーを見逃した場合。Gem は単純な shoulda-matcher 拡張モジュールです