我正在研究Michael Hartl rails教程。运行我的测试时,我收到以下错误:
Error:
UserTest#test_associated_microposts_should_be_destroyed:
ArgumentError: unknown command 'a'
test/models/user_test.rb:73:in 'test'
test/models/user_test.rb:73: in 'block in <class:UserTest>'
“test / models / user_test.rb”如下:
test "associated microposts should be destroyed" do
@user.save
@user.microposts.create!(content: "Lorem ipsum")
assert_difference 'Micropost.count', -1 do
@user.destroy
end
测试很简单,只是为了测试我的模型中的以下行(user.rb)
has_many :microposts, dependent: :destroy
如果我评论这句话如下:
has_many :microposts#, dependent: :destroy
我,正如所料,得到
Failure: [...] "Micropost.count" didn't change by -1. Expected:38 Actual 39.
如果我取消注释“dependent :: destroy”语句,我会收到此“未知命令”错误。任何人都可以就如何最有可能生成此错误提供一些指导,在rails(不包括rails控制台)的上下文中是什么“命令”以及首先尝试解决它的位置(模型?控制器?)。感谢。
答案 0 :(得分:2)
你的assert_difference电话中有一个拼写错误。
assert_difference 'Micropost.count" ...
请注意开头的单引号和结束的双引号。
答案 1 :(得分:0)
我刚才遇到了同样的问题而且有这个问题;
在int4
的顶部有此设置
micropost_test.rb
已经创建了一个帖子,所以当用户在测试中保存了另一个帖子时,那么该用户实际上被删除了2个帖子。所以我们期望的应该是-2差异。