【发布时间】:2010-11-07 09:01:09
【问题描述】:
我有一个 Perl 模块,我声明了一些常量:
use constant BASE_PATH => "/data/monitor/";
在实时操作中,常量将永远改变,但我希望能够在我的单元测试中修改它,例如将其设置为~/project/testdata/。有没有办法做到这一点而不必使用全局可变变量?
我可以在constant 上使用Test::MockObject 吗?
【问题讨论】:
-
如果您需要在整个测试过程中更改它,为什么不将其设为“非常量”
-
你可以试试猴子补丁常量的导入子程序。
-
你为什么要这样做而不是有一个配置文件?
-
我发现自己处于同样的位置。请参阅我的解决方案:答案晚了 10 年。 stackoverflow.com/a/58920320/124486 如果它是最好的,请考虑将其标记为已选择。
标签: unit-testing perl mocking constants compile-time-constant