2014-08-31 8 views
0

여기에 Ruby on Rails 입문.RSpec 새로운 구문을 사용하여 돈 - 레일 테스트 모델

저는 money-rails gem을 사용하여 돈을 지원하는 신청을하고 있습니다. 돈 로케일을 테스트하고 싶습니다. 각 Product model

monetize :bonus_cents, :with_currency => :gbp 

이렇게 테스트를 통과 갖는 경우

gem's example at test_helpers_spec.rb 읽기

let(:product) do 
    Product.create(:price_cents => 3000, :discount => 150, 
    :bonus_cents => 200, 
    :sale_price_amount => 1200) 
end 

... 

describe "monetize matcher" do 
    ... 

    it "matches model attribute with currency specified by :with_currency chain" do 
    product.should monetize(:bonus_cents).with_currency(:gbp) 
    end 

    ... 
end 

가있다. 최근 rspec's expect(...) 구문 다음에이 테스트를 어떻게 다시 작성하겠습니까? 나는 시도 할 것이다

expect(monetize(:bonus_cents).with_currency(:gbp)).to be true 

그러나 실패한다.

+2

try :'(제품 보너스) .to 수익 창출 (: bonus_cents) .with_currency (: gbp)' – Surya

+0

그리고 이미 테스트되었으므로 보석 기능을 테스트해서는 안됩니다. – IS04

+0

@ IS04하지 않습니다. – paulochf

답변

2
product.should monetize(:bonus_cents).with_currency(:gbp) 

가 나옵니다 :

expect(product).to monetize(:bonus_cents).with_currency(:gbp) 

expect 그냥 매처 (matcher)의 나머지 부분은 일반적으로 동일 개체가 테스트되고 래핑합니다.

+0

니스! 나는 RSpec에서 더 많은 것을 배울 필요가있다. 감사! – paulochf