在我的测试期间,Moingoid 似乎并没有持续设置嵌入式关系。在我的用户模型中,我有:
def vote_on(账单,价值) 如果 my_groups = self.groups my_groups.each 做 |g| bill.votes.create(:value => value, :user_id => self.id, :group_id => g.id) # 只针对工厂的结果:bill.votes.first.group = nil # 和 bill.votes.first.user = nil !! # self.id 和 g.id 在测试期间具有良好的值,它们只是没有持久化 结尾 别的 引发“此用户没有群组”##{self.full_name}” 结尾 结尾
其他有用的代码可能是:
##账单模型 班比尔 embeds_many:投票 ##投票模型 班级投票 包括 Mongoid::Document field :value, :type => Symbol # 可以是 :aye, :nay, :abstain #field :group_type, :type => 整数 属于_to:用户 所属:组 嵌入:账单 结尾 ## 测试 测试“描述性统计应该起作用”做 user1 = Factory.build(:user) b = Factory.build(:bill) user1.vote_on(b, :aye) # 这里创建了 nil 值! 计数 = b.descriptive_tally assert_not_nil 计数 结尾 ##票据工厂 Factory.define :bill do |f| f.bill_html "只是事实" ... f.state “介绍” f.text_updated_on DateTime.parse("2011-06-16 00:00:00 Z") f.text_word_count 2356 f.votes 结尾 ##用户工厂 Factory.define :用户做|u| u.email 'user@domain.com' u.name '用户' u.roles_mask 1 u.密码“秘密” u.password_confirmation “秘密” u.groups {[Factory.build(:group, {:name => 'foreign', :type => :custom})]} 结尾
这对我来说真是令人头疼。也许这是我需要更好地探索和提交的错误。我的第一个猜测是我的工厂或测试设置中缺少一些简单的东西。此代码在开发中运行良好。任何帮助是极大的赞赏。