ruby – 如何编写在类加载时调用的类方法的规范?

ruby – 如何编写在类加载时调用的类方法的规范?,第1张

概述class A include Logging log_to 'whatever'end 我想测试是否使用正确的参数调用方法log_to.但正如您可能已经猜到的那样,log_to方法来自Logging模块,并在类加载时被调用.如何编写规范或自定义匹配器来检查log_to是否被调用? 即使我在类A上模拟log_to方法,规范中也没有办法看看它是否会在类加载期间被调用时被调用.我尝试删除常量
class A  include Logging  log_to 'whatever'end

我想测试是否使用正确的参数调用方法log_to.但正如您可能已经猜到的那样,log_to方法来自Logging模块,并在类加载时被调用.如何编写规范或自定义匹配器来检查log_to是否被调用?

即使我在类A上模拟log_to方法,规范中也没有办法看看它是否会在类加载期间被调用时被调用.我尝试删除常量并再次加载它似乎不起作用.思考?

解决方法 这可能应该在spec文件的单独spec文件中,该文件测试A类的大部分功能:

describe 'A' do  it 'should log when loaded' do    class A ; end    A.should_receive(:log_to).with('whatever')    require 'a'  endend

不过,我会考虑将类的行为改为更容易测试的行为.在其构造中具有不寻常性或具有棘手限制的测试也是代码气味.

总结

以上是内存溢出为你收集整理的ruby – 如何编写在类加载时调用的类方法的规范?全部内容,希望文章能够帮你解决ruby – 如何编写在类加载时调用的类方法的规范?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存