首先,这是我第一次接触ruby。此时,我正在为我的应用程序中名为 Exporter 的控制器创建测试。我要测试的Controller的方法是这样的:
def export_as_json(equipments)
equipments_json = []
equipments.each {|equipment|
equipment_json = {
:id => equipment.id,
:title => equipment.title,
:description => equipment.description,
:category => equipment.category_id
}
equipments_json << equipment_json
}
respond_to do |format|
format.json { render :json =>equipments_json }
end
end
因此,当我尝试使用以下方法为此方法创建请求时:
RSpec.describe ExporterController, type: :controller do
get '/equipments/all', headers: { 'CONTENT_TYPE' => 'application/json' }, format: :json
expect(response.response).to eq(200)
end
在exporter_controller_test.rb
我收到此错误的文件中:
NoMethodError: undefined method `get' for RSpec::ExampleGroups::ExporterController:Class
这是几乎每个人都至少遇到过一次的问题之一;)
步骤 1:非常仔细地阅读错误消息
NoMethodError: undefined method 'get' for RSpec::ExampleGroups::ExporterController:Class
第 2 步:记住措辞 NoMethodError: undefined method get for RSpec::ExampleGroups::XXX:Class
第 3 步:通过使其成为实际示例来解决它
RSpec.describe ExporterController, "#index", type: :controller do
it "should respond with status: 200" do
get '/equipments/all', headers: { 'CONTENT_TYPE' => 'application/json' }, format: :json
expect(response.response).to eq(200)
end
end
你只是错过了it
块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句