0
我已經得到了控制規範,看起來像這樣測試實例,然後調用一個方法生成的對象上失敗
describe ExportController do
describe 'GET index' do
target_params = {type:'a', filter: 'b'}
expect(DataFetcher).to receive(:new).with(target_params)
get :index
end
end
控制器看起來像這樣
class ExportController < ApplicationController
def index
@fetcher = DataFetched.new(target_params)
...
end
end
如果我像這樣運行規範,一切都很酷。然而,我想要做的事與所得DataFetcher對象
class ExportController < ApplicationController
def index
@fetcher = DataFetcher.new(target_params)
@list = @fetcher.fetch_list
...
end
end
現在,當我運行spec失敗有沒有方法錯誤
NoMethodError
undefined method 'fetch_list' for nil:NilClass
請告訴我與呢?事情是,當我通過我的實際應用程序打這個控制器時,它按預期工作。 rspec在幕後做了什麼,以及我將如何正確設置它?
感謝你們
謝謝。當我以這種方式期望使用DataFetcher時,它是否轉換爲測試雙精度? – Neil 2015-03-02 22:16:08
我不確定「it」是什麼意思,但DataFetcher.new將在傳遞target_params時返回一個測試double。 – 2015-03-02 22:23:24