gpt4 book ai didi

ruby - 未返回 stub 方法的返回值

转载 作者:行者123 更新时间:2023-12-03 10:07:04 27 4
gpt4 key购买 nike

我已经 stub 了一个方法,并要求它返回一个特定的值。但是,在运行单元测试时,将调用real方法并返回生成的实值。

即我将方法get_requisition_number stub 以返回1值,但是在执行单元测试时,它返回了2011031100001

单元测试代码:

it "should have a unique requisition number when saved" do 
Requisition.stub(:get_requisition_number).and_return("1")
req1 = Requisition.new
req1.save
req2 = Requisition.new
lambda { req2.save! }.should raise_error(ActiveRecord::ActiveRecordError)
end

执行save方法时,将调用get_requisition_number方法。我从 stub 假定它应该返回 1。但是,它返回特定于日期的值,例如 2011031100001,这意味着它正在运行实际方法。

最佳答案

您需要在对象实例而不是类上添加方法。

req1 = Requisition.new
req1.stub(:get_requisition_number).and_return("1")
# same for req2

当您对类本身进行 stub 时,您可以在Requisition类上创建 get_requisition_number方法,例如 Requisition.get_requisition_number

关于ruby - 未返回 stub 方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com