【发布时间】:2015-12-22 19:03:05
【问题描述】:
我的CompaniesController中有以下代码sn-p
class CompaniesController < ApplicationController
def new
@company = Company.new
@company.employees.build
end
在我的 Rspec 中,如何检查 build 方法在 new 操作中是否被调用?
我试过这样的
expect(assigns(:company).employees).to have_received(:build)
但我收到以下错误消息:
#<Employee::ActiveRecord_Associations_CollectionProxy:0x007fe2ca2141e8> expected to have received build, but that object is not a spy or method has not been stubbed.
我需要先给员工存根吗?
更新:
新动作的Rspec
describe "GET 'new'" do
before { get :new }
it 'assigns @domain_name' do
expect(assigns(:domain_name)).to eq(request.host)
end
it 'assigns @company' do
expect(assigns(:company)).to be_a_new(Company)
end
it 'renders the new template' do
expect(response).to render_template('new')
end
结束
谢谢
【问题讨论】:
-
能否请您发布您的 new 方法的测试块?
-
@Emu 我已经用新方法的测试块更新了我的问题。
标签: ruby-on-rails ruby rspec