奇怪的RSpec行为

时间:2014-04-08 07:47:19

标签: ruby-on-rails ruby ruby-on-rails-4 rspec

我在尝试通过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

0 个答案:

没有答案