使用RSpec新语法进行money-rails测试的模型

时间:2014-08-31 06:26:04

标签: ruby-on-rails ruby rspec3 money-rails

这里是Ruby on Rails的新手。

我正在使用money-rails gem进行资金支持申请。我想测试钱现场。

阅读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

各自的Product model

monetize :bonus_cents, :with_currency => :gbp

所以测试通过了。如何在最近的rspec's expect(...)语法后重写该测试?我会试试

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

但它失败了。

1 个答案:

答案 0 :(得分:2)

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

出来:

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

expect只包装正在测试的对象,其余的匹配器通常是相同的。