从Rspec模拟返回2个值的方法可以通过使用RSpec的and_return
方法来实现。and_return
方法可以用于模拟方法调用并返回指定的值。
下面是一个示例代码,演示了如何使用RSpec模拟返回2个值:
# 假设有一个名为Calculator的类,其中有一个add方法用于计算两个数的和
class Calculator
def add(a, b)
a + b
end
end
RSpec.describe Calculator do
describe "#add" do
it "should return 2 values" do
calculator = Calculator.new
# 使用and_return方法模拟add方法返回两个值
allow(calculator).to receive(:add).and_return(10, 20)
result1 = calculator.add(2, 3)
result2 = calculator.add(4, 5)
expect(result1).to eq(10)
expect(result2).to eq(20)
end
end
end
在上述示例中,我们使用allow(calculator).to receive(:add).and_return(10, 20)
来模拟Calculator类的add方法返回两个值。然后我们分别调用add方法两次,并将返回值分别赋给result1和result2变量。最后使用RSpec的expect
方法来断言result1和result2的值是否符合预期。
这种方式可以用于模拟返回任意数量的值,只需在and_return
方法中传入相应的值即可。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云