我该如何进行Perl机器或平台相关的TDD测试?

5
如何测试与机器或平台相关的功能或模块呢?例如,某些功能需要查看或依赖于$^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');
}

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

2个回答

5

3
通常你会使用模拟对象来“伪造”那些系统调用的结果。
在测试期间,使用模拟对象并让它们返回在不同平台上预期的各种结果,以测试你的代码在这些情况下是否能正确地响应。

由于某种奇怪的原因,当我发布这篇文章时,我认为我必须模拟Net::Ifconfig::Wrapper所调用的内容,而不是模拟Net::Ifconfig::Wrapper本身。我只能以临时精神错乱为辩护... - Joe Casadonte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接