Mongoid不和工厂玩得很好
在我的测试中,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}“ 结束 结束
其他有用的代码可能是:
##账单模型 class比尔 embeds_many:投票 ##投票模型 投票 包括Mongoid :: Document field:value,:type =>符号#可以是:aye,:nay,:abstain #field:group_type,:type => Integer belongs_to:用户 belongs_to:group embedded_in:bill 结束 ## test 测试“描述性记录应该工作”做 user1 = Factory.build(:user) b = Factory.build(:bill) user1.vote_on(b,:aye)#nil值在这里创建! tally = b.descriptive_tally assert_not_nil计数 结束 ## bill工厂 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.password“秘密” u.password_confirmation“秘密” u.groups {[Factory.build(:group,{:name =>'foreign',:type =>:custom})]} 结束
对我来说这真是令人头疼的事。 也许这是我需要更好地探索和提交的错误。 我的第一个猜测是我在工厂或测试设置中遗漏了一些简单的东西。 此代码适用于开发。 任何帮助是极大的赞赏。
我认为大多数工厂gem和Mongoid存在问题。 我似乎记得有很多问题试图使用Factory Girl和Machinist。
Fabrication似乎是目前推荐的使用Mongoid进行对象生成的标准。 它对我们所有的Mongoid项目都很有效。