这是测试的新手,希望你能提出建议。
我有一个简单的模型:
class Checkout < ActiveRecord::Base
validates.........
def number_of_days
(checkout - checkin).to_i
end
end
我想测试'number_of_days'方法返回正确的值。我已经尝试过mock_model以及其他各种方法来存根,但却无法让它工作。
这是我最近的尝试仍然不起作用:
要求'spec_helper'
describe Checkout do
it "should calculate the number of days" do
checkout = mock_model(Checkout,
checkin: 2.days.from_now.strftime('%Y-%m-%d'),
checkout: 4.days.from_now.strftime('%Y-%m-%d')
)
expect(checkout.number_of_days).to eq(2)
end
end
上述测试的错误是“ouble”Checkout_1001“收到意外消息:number_of_days with(no args)”
所以我显然仍然走错了路。
你可以建议吗?答案 0 :(得分:0)
您无需创建任何模拟。只需创建一个您给mock的对象值的实例,并断言number_of_days方法的返回值。
describe Checkout do
it "should calculate the number of days" do
checkout = Checkout.new(
checkin: 2.days.from_now.strftime('%Y-%m/%d'),
checkout: 4.days.from_now.strftime('%Y-%m/%d')
)
checkout.number_of_days.should eq(2)
end
end
答案 1 :(得分:0)
你能不只是制作一个新的实例对象?
checkout = Checkout.new(
checkin: 2.days.from_now.strftime('%Y-%m-%d'),
checkout: 4.days.from_now.strftime('%Y-%m-%d')
)