Rails Rspec测试控制器新动作

时间:2014-04-30 11:40:40

标签: ruby-on-rails ruby rspec

我正在尝试在我的控制器中测试新动作。目前它看起来像这样:

控制器

def new
  @business = Business.new
  @business.addresses.build
end

规格

describe 'GET #new' do
  it 'assigns a new business to @business' do
    get :new
    expect(assigns(:business)).to be_a_new(Business)

  end
end

我想测试一下' @ business.addresses.build'。我该怎么做?

提前致谢!

2 个答案:

答案 0 :(得分:11)

怎么样

expect(assigns(:business).addresses.first).to be_a_new(Address)

答案 1 :(得分:1)

假设构建是一种方法,您只需要测试以确保调用构建。您可以将新的Business替换为具有期望接收addresses的{​​{1}}属性的模拟,从而实现此目的。

我没有测试过这个,但我怀疑你可以这样做:

:build