微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何与Factory Girl一起使用`assigns\'

如何解决如何与Factory Girl一起使用`assigns\'

| 嗨, 我有以下测试:
  test \"should annoy Chuck norris\" do
    son = Factory.build(:son)
    assert_difference(\'Son.count\') do
      post :create,son: { asset: son.asset,chuck_id: son.chuck }
    end

    assert_redirected_to chuck_path(assigns(son.chuck))
    assert_equal \'The world has been destroyed...\',flash[:notice]
  end
assigns(son.chuck)
无效,当我尝试
son.chuck
时,它可以工作,但是在运行所有测试并创建了
Chucks
之后,
Factory.build(:son)
创建了ID为
12
Chuck
,而
assert_redirected_to
发送了ID
1
。导致以下错误
Expected response to be a redirect to <http://test.host/chucks/12> but was a redirect to <http://test.host/chucks/1>
          /Users/edison/.rvm/gems/ruby-1.9.2-p180/gems/actionpack-3.1.0.rc4/lib/action_dispatch/testing/assertions/response.rb:67:in `assert_redirected_to\'
那我怎样才能得到正确的10英镑呢?     

解决方法

        我想您要使用的是11英镑。 要分配的参数必须与控制器中的变量名称匹配。换句话说,假设控制器中有
@chuck.son
,则应使用
assigns(:chuck).son
。注意自变量与corresponds14ѭ符号后的内容的对应关系。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。