如何使用shoulda匹配器来测试多态关联?
我正在使用带有rails的shoulda-matchers,并创建一个名为“comments”的模型和另一个名为“post”的模型。评论是多态的。
当我在像这样的帖子中使用 shoulda 匹配器进行测试时,
it {should have_many(:comments)}
它会收到此消息
预期帖子有 has_many 协会称为评论(Comment 没有 post_id 外键。)
在我的评论模型中,我
belongs_to :commentable, :polymorphic => true
如何测试我的多态关联以便帖子可以有很多评论?
ps 应该匹配器文档说它支持多态关联。
I'm using shoulda-matchers with rails and I'm creating a model called "comments" and another model called "post". Comments is polymorphic.
When I test with shoulda matchers in post like this
it {should have_many(:comments)}
it get this message
Expected Post to have a has_many
association called comments (Comment
does not have a post_id foreign key.)
In my comment model I have
belongs_to :commentable, :polymorphic => true
How can I test my polymorphic association so that a post can have many comments?
p.s. the shoulda matcher documentation said it supports polymorphic associations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要在测试中做任何特殊的事情,
应该
它应该可以正常工作。在您的帖子模型上,确保设置:as
选项:这将确保 Rails 使用正确的列名称
commentable_id
和commentable_type
而不是post_id
。You shouldn't need to do anything special in your test for
should
it should just work. On your post model ensure sure you set the:as
option:That will ensure rails uses the proper column names
commentable_id
andcommentable_type
rather thanpost_id
.