2

最近,我开始研究我们产品中的 Email2SMS 功能。当我加入该项目时,该组件的单元测试代码覆盖率为零。遗留代码。

自从我开始研究它以来,我一直在使用测试优先的方法。但是代码质量非常低。很难将它拆分并通过单元测试来测试小块,所以我决定编写集成测试。

有一个 php 脚本,它接受一些消息信息,在数据库中搜索用户并保存一些信息,如果一切正常。

$last_line = system('php emailtosms.php -file=unicode_message.txt ', $retval);

$this->assertStringExistsInLogFile('Email to SMS message was not sent');

是坏还是不好?你将如何解决这个问题?

4

1 回答 1

3

不太好。

在较低级别进行测试,将 emailtosms.php 脚本作为处理命令行参数的简单包装器,然后传递给更可测试的类。根据最后一步,您可以编写单元测试来执行除最后发送之外的几乎所有操作(也许模拟实际发送它的最后一步,并将其存储到一个变量中,然后检查您那里是否有有效的东西)。

最终的集成,端到端运行整个类,并检查其输出,查看最终的日志 - 或者更高级别,将放入日志中的内容。

于 2009-04-14T18:37:12.127 回答