我在尝试通过rspec测试模型时遇到了一些奇怪的事情。我有代码
it "has might that varies by atmost 30" do
instance.init(100)
expect(instance.members.count).to eq(1)
instance.members.each do |member|
puts "#{member.unit.name}"
end
expect(instance.members.count).to eq(1)
end
当我运行上面的测试时,两个都希望方法通过,表示只有一个“成员”记录与实例关联,但当我打印出每个成员的名称时,它会打印一个名称两次,说有两个不同的成员?
编辑:此外,该方法在开发服务器上正常工作,但在测试期间只有这个问题吗?
编辑:有问题的方法
def init(might)
transaction do
self.group.delegations.each do |delegation|
unit = delegation.unit
amount = (might / unit.might) * delegation.fraction
amount = amount.round
unless amount < 1
self.members.create(unit: unit, amount: amount)
end
end
end
end