如何测试依赖于机器或平台的功能或模块?例如,查看/依赖的东西$^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的模拟对象建议,你应该看看Misko Hevery的文章"与难以测试的第三方控件接口".它直接解决测试第三方组件的问题.