ruby – Chefspec重复加载库并发出警告“已经初始化的常量CONSTA
发布时间:2020-12-17 03:24:24 所属栏目:百科 来源:网络整理
导读:我有一个带有图书馆的厨师食谱,例如library.rb.它包含一个CONSTANT: CONSTANT = 'constant' 当我为这本食谱编写单元测试时,它总是给我警告: (Some prefix...)warning: already initialized constant CONSTANT(Some prefix...)warning: previous definition
我有一个带有图书馆的厨师食谱,例如library.rb.它包含一个CONSTANT:
CONSTANT = 'constant' 当我为这本食谱编写单元测试时,它总是给我警告: (Some prefix...)warning: already initialized constant CONSTANT (Some prefix...)warning: previous definition of CONSTANT was here 警告反复出现,与示例(测试用例)的数量减去一样多.我认为这是因为chefspec为每个示例加载一次库.有人能告诉我如何只加载一次库,或者如何禁用警告信息? 解决方法
短期内,将其更改为:
CONSTANT ||= 'constant' 从长远来看,最好使用let(),或者将常量移出测试用例,或选择任何其他方式替换常量,或者确保测试代码加载库一次,而不是多次. 编辑 – 评论中@sawa的优点:如果你的常量是零或假,那么|| =方法不会停止警告,所以你需要一个更好的解决方案,例如: CONSTANT = 'constant' unless defined? CONSTANT (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |