0

クラスメソッドを作成し、そのクラスメソッド内で同じクラスの別のオブジェクトをインスタンス化します。このオブジェクトを保存しようとすると、テストによるとfalseになりますが、理由がわかりません。

預金の実施に関する限り。私はtransaction.creditを単独でテストしましたが、意図したとおりに機能します。問題は、transaction.saveがTRUEを返さないことです。Anding(&&)これら2つのメソッドを一緒にすると、両方のメソッドが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
4

1 に答える 1

0

検証要件を満たしていないためにテストが失敗したため、オブジェクトが保存されませんでした...これを理解するために必要なエラーメッセージを取得するのを手伝ってくれた@23tuxに感謝します。

于 2012-10-01T15:23:24.160 に答える