perl - 如何进行 Perl 机器或平台相关的 TDD?

标签 perl unit-testing tdd 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');
}

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

最佳答案

跟进 Jason 的 mock objects建议,你应该看看文章"Interfacing with hard-to-test third party controls" by Misko Hevery .它直接解决了测试第三方组件的问题。

关于perl - 如何进行 Perl 机器或平台相关的 TDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470711/

相关文章:

perl - 翻译 perl 脚本删除脚本 (1) 输出中的控制字符到 sed

xml - 使用 perl 解析大型 (100 Mb) XML 文件时出现 "Out of memory"

perl - 从 Perl 调用命令,需要查看输出

unit-testing - 在编写源代码之前或之后进行 TDD 和测试?

javascript - 然后没有触发 Jasmine 的提取模拟

java - 您可能需要安装 My::Module 模块

angular - ng2-dragula 单元测试 "dragulaService.setOptions is not a function"

Python TDD目录结构

ruby-on-rails - Rails 中的 stub 模型方法

tdd - 我是否应该在尚未使用 TDD 的项目上开始使用它