gpt4 book ai didi

ruby - 如何测试单例类?

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

我正在使用 RSpec 并想不止一次地测试 Singleton 类的构造函数。

我该怎么做?

最好的问候

最佳答案

单例类本质上就是这样做的

def self.instance
@instance ||= new
end

private_class_method :new

因此您可以通过使用 send 调用私有(private)方法 new 来完全绕过内存

let(:instance) { GlobalClass.send(:new) }

这种方式的一个好处是,不会因为您的测试运行而修改全局状态。


可能是更好的方法,来自 this answer :

let(:instance) { Class.new(GlobalClass).instance }

这将创建一个继承自 GlobalClass 的匿名类,所有类级别的实例变量都存储在其中。然后在每次测试后将其丢弃,而 GlobalClass 保持不变.

关于ruby - 如何测试单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909181/

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