如何测试依赖于机器或平台的功能或模块?例如,看/依赖于$^ O或像
Net::Ifconfig::Wrapper这样的模块?我不需要测试Net :: Ifconfig :: Wrapper返回正确的值,但我确实需要测试我是否正在使用这些值做正确的事情.
谢谢!
编辑:测试$^ O结果比我想象的更容易:
{ # <~> $perl -e 'print $^O' # linux local $^O = 'linux'; $rc = GetOSType(); is($rc,$OS_LINUX,'OS Check - linux'); }
出于某种原因,我认为这是一个只读变量.
解决方法
要跟进Jason的
mock objects建议,你应该看看文章
“Interfacing with hard-to-test third party controls” by Misko Hevery.它直接解决测试第三方组件的问题.