如何使用Perl机器或依赖于平台的TDD?

如何使用Perl机器或依赖于平台的TDD?,perl,unit-testing,tdd,multiplatform,Perl,Unit Testing,Tdd,Multiplatform,如何测试依赖于机器或平台的功能或模块?例如,查看/依赖于$^O或类似模块的内容?我不需要测试Net::Ifconfig::Wrapper是否返回正确的值,但我需要测试我是否使用这些值做了正确的事情 谢谢 编辑:测试$^O比我想象的要容易: { # <~> $ perl -e 'print $^O' # linux local $^O = 'linux'; $rc = GetOSType(); is($rc, $OS_LINUX, 'OS Ch

如何测试依赖于机器或平台的功能或模块?例如,查看/依赖于
$^O
或类似模块的内容?我不需要测试Net::Ifconfig::Wrapper是否返回正确的值,但我需要测试我是否使用这些值做了正确的事情

谢谢

编辑:测试
$^O
比我想象的要容易:

{
    # <~> $ perl -e 'print $^O'
    # linux

    local $^O = 'linux';
    $rc = GetOSType();
    is($rc, $OS_LINUX, 'OS Check - linux');
}
{
#$perl-e'打印$^O'
#linux
本地$^O='linux';
$rc=GetOSType();
是($rc,$OS_-LINUX,'OS-Check-LINUX');
}
出于某种原因,我认为它是一个只读变量。

通常,您使用它来“伪造”那些系统调用的结果


在测试过程中,使用模拟对象并让它们返回您在不同平台上期望的各种结果,测试您的代码在这些情况下是否能正常反应。

要跟进Jason的建议,您应该看看这篇文章。它直接解决了测试第三方组件的问题。

无论出于什么原因,当我发布这篇文章时,我认为我必须模仿Net::Ifconfig::Wrapper调用的内容,而不是Net::Ifconfig::Wrapper本身。我只能以暂时的精神错乱作为辩护。。。。