加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:30:57 所属栏目:百科 来源:网络整理
导读: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'
  end

end

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读