gpt4 book ai didi

perl - Perl 单元测试只针对模块而不是程序吗?

转载 作者:行者123 更新时间:2023-11-28 19:46:44 24 4
gpt4 key购买 nike

我在网上找到的文档和我的书 Perl Testing 都说或建议通常在创建模块时对 Perl 进行单元测试。

这是真的吗?有没有办法使用 Test::More 和 cousins 对实际程序进行单元测试?

最佳答案

当然,您可以使用 Test::More 测试脚本.这只是更难,因为大多数脚本需要作为一个单独的进程运行,您可以从中捕获输出,然后根据预期输出对其进行测试。

这就是开发modulinos(参见第 17 章:brian d foyMastering Perl,第二版,O'Reilly,2014 年)的原因。 modulino 是一个脚本,也可以用作模块。这使得测试更容易,因为您可以将 modulino 加载到测试脚本中,然后像测试常规模块一样测试其功能。

modulino 的主要特征是:

#! /usr/bin/perl
package App::MyName; # put it in a package

run() unless caller; # Run program unless loaded as a module

sub run {
... # your program here
}

函数不必调用run;如果你是 C 程序员,你可以使用 main。您通常还会根据需要运行调用额外的子例程。

然后您的测试脚本可以使用require "path/to/script" 加载您的modulino 并执行其功能。由于许多脚本涉及写入输出,并且通常更容易打印而不是执行 print sub_that_returns_big_string(),您可能会发现 Test::Output有用。

关于perl - Perl 单元测试只针对模块而不是程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com