gpt4 book ai didi

ruby-on-rails - RSpec - 模拟类方法

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:30 26 4
gpt4 key购买 nike

我正在尝试用 rspec 模拟一个类方法:

lib/db.rb

class Db  def self.list(options)    Db::Payload.list(options)  endend

lib/db/payload.rb

class Db::Payload  def self.list(options={})  endend

在我的规范中,我正在尝试设置预期 Db::Payload.list 在我调用 Db.list 时将被调用:

require 'db/payload'describe Db do  before(:each) do    @options = {}    Db::Payload.should_receive(:list).with(@options)  end  it 'should build the LIST payload' do    Db.list(@options)  endend

问题是我总是收到以下错误:

undefined method `should_receive' for Db::Payload:Class

如果能帮助理解这个错误,我们将不胜感激:-)

最佳答案

你的 spec_helper.rb 应该是这样的:

Spec::Runner.configure do |config|
# == Mock Framework
#
# RSpec uses its own mocking framework by default. If you prefer to
# use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
end

默认参数是 config.mock_with :rspec 启用 should_receive 方法。例如,如果您使用的是 Mocha,则等效项是 expects,因此请确保您使用的是正确的模拟框架。

关于ruby-on-rails - RSpec - 模拟类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797761/

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