我正在测试以下方法:
def deal_with_response(site, responses, request_url)
response.each do |response|
if response.code == 200
send_request(site.site_api_url, site.site_api_key, response, request_url)
elsif response.code == 404
send_request(site.site_api_url, site.site_api_key, response, request_url)
GeneralMailer.recieved_404(ENV['ADMINISTRATOR_NAME'], ENV['ADMINISTRATOR_EMAIL'], site, response).deliver_now
elsif response.code == 500
send_request(site.site_api_url, site.site_api_key, response, request_url)
GeneralMailer.recieved_500(ENV['ADMINISTRATOR_NAME'], ENV['ADMINISTRATOR_EMAIL'], site, response).deliver_now
else
send_request(site.site_api_url, site.site_api_key, response, request_url)
GeneralMailer.recieved_error(ENV['ADMINISTRATOR_NAME'], ENV['ADMINISTRATOR_EMAIL'], site, response).deliver_now
end
end
end该代码对其进行了测试:
it "should send no email (200)" do
response = double("response", :code => 200)
site = double("site", :site_api_url => 'http://google.ca', site_api_key: 'sdsadsasada')
send_request_method = double()
send_request_method.stub(:send_request).with(site.site_api_url, site.site_api_key, [response], 'http://google.ca').and_return nil
expect{ BlackBird::PublishToSites::User.deal_with_response(response) }.to_not change{ ActionMailer::Base.deliveries.count }.by(1)
end结果是:
Failure/Error: expect{ BlackBird::PublishToSites::User.deal_with_response(response) }.to_not change{ ActionMailer::Base.deliveries.count }.by(1)
NotImplementedError:
`expect { }.not_to change { }.by()` is not supported
# ./spec/blackbird/publish_to_sites/user_spec.rb:129:in `(root)'我是不是遗漏了什么?我在其他测试中做了类似的代码,它运行得很好。我是不是把期望街区搞错了?
发布于 2015-02-03 01:46:23
正如错误消息所示,不支持expect {}.not_to change { }.by()。在not_to中使用“更改匹配器”时,只能指定from值。
尝试以下两种方法之一:
expect{ BlackBird::PublishToSites::User.deal_with_response(response) }.to_not change{ ActionMailer::Base.deliveries.count }
expect{ BlackBird::PublishToSites::User.deal_with_response(response) }.to_not change{ ActionMailer::Base.deliveries.count }.from(original_delivery_count)method
https://stackoverflow.com/questions/28289159
复制相似问题