0
'트랜잭션'이라는 모델에 대한 날짜 속성이 있습니다. 저장할 때 해당 트랜잭션이 범위 내에 있는지 확인한 다음 이전 트랜잭션으로 날짜를 설정하고 싶습니다.rspec 스텁 아웃 errors.add
작동하지만 테스트를 진행할 수없는 것 같습니다. 오류를 추가 할 때 폭탄을 계속 내 보냅니다. 'errors.add'줄을 스텁 (stub)하는 방법이 있습니까? 그래서 tran_date 값이 올바르게 변경되었는지 확인하기 위해 테스트를 분리 할 수 있습니까? 그러나
1) Transaction Saving a transaction date is empty should set date to previous transaction
Failure/Error: @tran = Transaction.make!(:ledger => ledger, :tran_date => "")
ActiveRecord::RecordInvalid:
Validation failed: Tran date is outside financial year
내가 다음 error.add 기능을 주석하면 내 테스트를 통과 :
def tran_date_within_financial_year
range = ledger.fin_start..ledger.fin_end
unless range === tran_date
tran = Transaction.all.order("created_at").last
self.tran_date = tran.tran_date
errors.add(:tran_date, "is outside financial year")
end
end
여기 내 테스트
context "date is empty" do
it "should set date to previous transaction" do
@prev_tran = Transaction.make!(:tran_date => Date.new(2012,02,03))
@tran = Transaction.make!(:tran_date => "")
@tran.save
@tran.reload.tran_date.should eq(@prev_tran.tran_date)
end
end
RSpec에 실행하는 것은 결과입니다. 따라서 이전 거래일로 정확하게 값을 설정하고 있습니다. 문제는 errors.add 테스트를 모두 중지합니다.
통지 당신은 – apneadiving
내가 몇 가지를'잊었 보인다 알려진 잘못된 개체에'make'가 아닌'make'를 사용해야합니다'위 ... :) – apneadiving
-1입니다! 더 잘 설명 된 – apneadiving