我如何做Perl机器或平台相关的TDD?

Joe*_*nte 5 tdd perl unit-testing multiplatform

如何测试依赖于机器或平台的功能或模块?例如,查看/依赖的东西$^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');
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我认为这是一个只读变量.

Gav*_*ler 5

为了跟进Jason的模拟对象建议,你应该看看Misko Hevery的文章"与难以测试的第三方控件接口".它直接解决测试第三方组件的问题.