我在嘗試爲黃瓜鐵軌模型定義一個模擬方面遇到了很多麻煩。這似乎是方法創造了一堆的消息的期望,我不斷收到錯誤,像這樣的:在黃瓜+鐵軌上嘲笑問題
Given I have only a product named "Sushi de Pato" # features/step_definitions/product_
steps.rb:19
unexpected invocation: #<Mock:ProductCategory_1001>.__mock_proxy()
unsatisfied expectations:
- expected exactly once, not yet invoked: #<Mock:ProductCategory_1001>.errors(any_pa
rameters)
- expected exactly once, not yet invoked: #<Mock:ProductCategory_1001>.id(any_parame
ters)
- expected exactly once, not yet invoked: #<Mock:ProductCategory_1001>.to_param(any_
parameters)
- expected exactly once, not yet invoked: #<Mock:ProductCategory_1001>.new_record?(a
ny_parameters)
- expected exactly once, not yet invoked: #<Mock:ProductCategory_1001>.destroyed?(an
y_parameters)
satisfied expectations:
- allowed any number of times, not yet invoked: #<Mock:errors>.count(any_parameters)
(Mocha::ExpectationError)
我還沒有實現的產品分類的類,我只是希望它返回一個ID和一個「名稱」屬性。
這是我的步驟定義:
Given /^I have only a product named "([^\"]*)"$/ do |name|
@product = Product.create!(:name => name, :description => 'Foo', :price => 100, :points => 100, :category => mock_model(ProductCategory))
end
這是我env.rb文件:
$: << File.join(File.dirname(__FILE__),"..")
require 'spec\spec_helper
我使用RSPEC 1.3.0,0.6.3黃瓜和webrat 0.7.0
我試着使用存根很好,但有一些其他的錯誤,而不是...
我認爲你是絕對正確的!在閱讀了很多關於黃瓜試圖解決這個問題的東西之後,我得出了這樣一個結論,即黃瓜應該更多地作爲一個集成測試,因此需要我描述的每個東西都要實施。我通過創建ProductCategory模型規範然後實現它來解決它。我認爲這是有道理的,因爲Product和ProductCategory緊密相關。 非常感謝你! – 2010-03-20 20:51:40