为什么帖子在我的Rails功能测试中失败了?

dbr*_*708 5 testing ruby-on-rails

当我在Rails功能测试中运行帖子时

setup do
  post :create, :user => Factory.attributes_for(:user)
end
Run Code Online (Sandbox Code Playgroud)

它失败了,我没有得到任何关于为什么的反馈.我知道它失败了,因为我断言确保数据库中有一条额外的记录失败.

我试着这样做

setup do
  post :create, :user => Factory.attributes_for(:user)
  assert_valid @controller.object
end
Run Code Online (Sandbox Code Playgroud)

但是对象是受保护的方法.

如何检查由调用后调用产生的模型对象上的错误?

我正在使用Shoulda和Factory Girl,但我怀疑这并不重要.

ins*_*mer 6

添加以下断言:

assert_nil assigns(:user).errors
Run Code Online (Sandbox Code Playgroud)

如果保存对象时出错(可能是验证),则会失败,并显示错误对象的值.