为什么当我在同一个类中实例化的对象上调用save时它不会返回true?

时间:2012-10-01 14:49:14

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

我创建了一个类方法,在该类方法中,我实例化了同一个类的另一个对象。在尝试保存这个对象时,我根据我的测试得到了错误,但我无法弄清楚原因。

实施存款。我已经测试了transaction.credit,它按预期工作。问题是transaction.save没有返回TRUE。 Anding(&&)这两个方法只有在两个方法都计算为TRUE时才会返回true。

class Transaction
  .
  .
  .
  def self.deposit(account, amount, description, task_description_id)
    # create credit transaction
    transaction = Transaction.new
    transaction.description = description
    transaction.task_description_id = task_description_id

    transaction.credit(account, amount) && transaction.save
  end
  .
  .
  .
end

我的测试

describe "when performing account deposit" do
  before { @flag = Transaction.deposit(@discrete_task.commitment_account, 10000, "transfer", 4) }
  it { @discrete_task.commitment_account.balance.to_f.should == 10000 }
  it { @flag.should be_true }
end

1 个答案:

答案 0 :(得分:0)

我的测试由于未满足验证要求而失败,因此我的对象无法保存...感谢@ 23tux帮助我获取错误消息,我需要弄明白这一点。