我有一些作为 cronjobs 运行的 php 脚本。没有类,只有几个函数。
我想用 PHPUnit 测试脚本以确保一切正常,但看来我需要将 php 重写为一个类,我不想这样做(或不知道如何做)。
例如,如果我有一个脚本,它的唯一功能是将 1 和 2 加在一起,
<?php
$a=1;
$b=2
$c=$a+$b;
?>
如何使用 phpunit 测试 $c==3 ?
谢谢, 唐
最佳答案
对于您的示例,您不会测试 $c = 3。
但那是因为你的例子有点太简单了。脚本执行后,变量 $c
将停止存在。所以它存在与否并不重要。您想要测试代码的功能,而不是它的工作方式。
我会稍微修改一下你的例子:
工作.php
<?php
$a=1;
$b=2
echo $a + $b;
?>
现在我们实际上有了一些输出和一些行为。对此的测试如下:
public function testJob() {
require('job.php');
$this->expectOutputString('3');
}
PHPUnit has the ability to assert against stdOut.我们确保代码输出我们期望的结果。您对这些类型的文件的测试将检查它们所做的事情是否正确。由于 PHP 的 require
语句将在此时执行该文件,因此我们可以运行该脚本并检查其输出。
如果您的文件具有函数,您只需包含该函数并在各自的测试中检查每个函数。
关于php - 对 PHP 脚本进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949741/