gpt4 book ai didi

ruby-on-rails - RSpec:如何正确测试循环通过集合/调用实例方法的类方法

转载 作者:行者123 更新时间:2023-11-28 21:21:08 25 4
gpt4 key购买 nike

考虑以下类和类方法:

class Foo < ActiveRecord::Base
scope :active, -> { where(deleted: false) }

class << self
def some_class_method
active.each do |foo|
foo.some_instance_method
end
end
end
end

在 RSpec 中测试这种方法的最佳实践是什么?到目前为止我所学到的表明我应该确保 Foo 的每个事件实例接收some_instance_method的调用,但是如果我要对做出期望Foo.some_class_method,据我所知,我无法断言任何 Foo 实例的嵌套期望。

如有任何帮助,我们将不胜感激!

最佳答案

我会采取的方法是单独测试some_instance_method,比如:

it 'should return some value' do
expect(foo.some_instance_method).to eq('some value')
end

然后您可以运行类方法并测试转换是否按预期发生:

context 'Foo#some_class_method' do
it 'should have some effect' do
expect(some_comparison_variable).to eq('some_before_state')
Foo.some_class_method
expect(some_comparison_variable).to eq('some_after_state')
end
end

关于ruby-on-rails - RSpec:如何正确测试循环通过集合/调用实例方法的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269770/

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