如何测试与test :: unit的belongs_to,has_one或has_many关联?

ben*_*bot 2 ruby unit-testing ruby-on-rails testunit ruby-on-rails-4

我对rails测试很新,我尝试使用shoulda,但它打破了我把它放入的任何模型,所以我想我应该手动测试它们.

所以我的问题哦,SO的伟大专家是这样的:

如何使用test :: unit测试模型是否与另一个模型相关联?

Vla*_*ich 5

好吧,最明显的解决方案是这样的:

user = User.create(name: 'User')
2.times { user.friends.create(name: 'Other User') }

assert_equal(2, user.friends.count, "Unexpected associated records count")
Run Code Online (Sandbox Code Playgroud)

但这基本上更像是测试rails本身,你不应该为此烦恼.

我会检查一下user.respond_to?(:friends).但是,当然,如果有人定义了具有该名称的方法,它将失败