【问题标题】:Let method failing to generate variable correctly让方法无法正确生成变量
【发布时间】:2013-09-19 00:51:40
【问题描述】:

let 方法应该为每个名为“Bills 1”的示例创建一个 bills1 变量。相反,我得到一个错误:

  1) BillsHelper should be valid
 Failure/Error: @bills1.name should eq('Bills 1')

   expected: "Bills 1"
        got: BillsHelper

   (compared using ==)

   Diff:
   @@ -1,2 +1,2 @@
   -"Bills 1"
   +BillsHelper
 # ./spec/helpers/bills_helper_spec.rb:17:in `block (2 levels) in <top (required)>'

还有我的助手测试:

describe BillsHelper do
let(:bills1) { Bill.create(name: 'Bills 1', amount: 1.00) }

it "should be valid" do
    @bills1.name should eq('Bills 1')
end

it "#bill_total" do
    expect(bill_total).to eq(2.00)
end 
end

【问题讨论】:

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


    【解决方案1】:

    您已经在 let 块中定义了 bills1,但您在 it 块中访问了 @bills1。此外,您已经通过 should 调用访问了隐式 subject。虽然RSpec 建议迁移到新的expect 语法,但如果您想使用should,它是您正在评估的对象上的一种方法(例如bills1.name.should 而不是bills1.name should)。

    【讨论】:

      【解决方案2】:

      像这样在let 块中定义事物将为您在本地范围内的测试创建它们,即。 bills1 不是 @bills1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-30
        • 2017-03-17
        • 1970-01-01
        相关资源
        最近更新 更多