gpt4 book ai didi

rspec - 创建新的 stub 方法,以检查该方法是否存在于Rspec中

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

我想创建一些特殊的 stub 方法stub_checkstub_chain_check,以确保该方法存在。

例如:

#spec/controllers/payments_controller_spec.rb`

describe PaymentsController do
it "makes a payment" do
# Ensure method exists, Payment.new.respond_to?(:pay)
# the API of Payment can change and tests will pass
raise "Stubbing wrong method Payment#pay method doesn't exists" unless Payment.new.respond_to?(:pay)
Payment.any_instance.stub(pay: true) # We can stub method now
# Code...
end
end

但是我想像 Payment.stub_check(pay: true)一样

最佳答案

您可以在spec_helper.rb文件上创建一个助手:

def stub_check(resource, method, value, message)
raise message unless resource.new.respond_to?(method)
resource.any_instance.stub(method => value)
end

然后用
stub_check(Payment, :pay, true, 'Stubbing wrong method Payment#pay method doesn't exists')

编辑:如果您希望它像 stub 一样工作,则可能需要修改mocka或您正在使用的匹配器(由于“any_instance”方法,我猜它是mocka)

关于rspec - 创建新的 stub 方法,以检查该方法是否存在于Rspec中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440562/

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