以下是該應用/模型/ websites.rb摩卡+黃瓜嘲笑淨響應
class Masterpiece < ActiveRecord::Base
validates_presence_of :title, :link
validates_uri_existence_of :link, :allow_redirect => false
end
第二驗證是從插件Validates Existence of URI插件
以下爲特徵/支持/ mocha.rb文件
require 'mocha'
World(Mocha::API)
Before do
mocha_setup
@http_mock = mock('Net::HTTPResponse')
@http_mock.stubs(:code => '200', :message => "OK", :content_type => "text/html", :body => '<title>Test</title><body>Body of the page</body>')
Net::HTTP.expects(:get_response).returns(@http_mock)
#Website.expects(:validates_uri_existence_of).returns(true)
end
After do
begin
mocha_verify
ensure
mocha_teardown
end
end
但是當我嘗試運行黃瓜功能,它會嘗試創建記錄和保存上述插件之前會嘗試檢查過氖t得到迴應。沒關係。
但是,當我想要得到它嘲笑的測試環境中,我試圖用摩卡。
我應如何編寫代碼來嘲笑淨響應或類方法validates_uri_existence_of流暢運行測試?
好吧,我改變了支持/ mocha.rb文件作爲你建議。 之前做 mocha_setup 網:: HTTP.expects(:get_response).returns(淨:: HTTPSuccess.allocate) 結束 但現在當我運行的特點,顯示下面的錯誤! 不是所有的期望都滿足 不滿意的期望: - 預計只有一次,沒有調用:淨:: HTTP.get_response(any_parameters) (摩卡:: ExpectationError) – Autodidact 2009-10-03 07:51:16
不知道爲什麼它不會被調用。如果它的目的是無法一直叫你應該使用'stubs'而不是預期(同樣的工作,不會導致不觸發時失效)。 聽起來像Fakeweb foo(@Radar提到的)是一個更好的解決方案。嘲諷低水平幾乎總是會引起頭痛。 – cwninja 2009-10-03 19:00:19
謝謝。我現在通過在代碼末尾添加.at_most(4)來解決它,並且它工作正常。但是我仍然不滿意這個解決方案。在進入摩卡之前,我查看了FakeWeb,但沒有找到代替摩卡的代碼行。你可以給我這行代碼,使這個工作使用FakeWeb? – Autodidact 2009-10-07 15:11:39