Don*_*n F 2 php phpunit unit-testing
我有一些作为cronjobs运行的PHP脚本.没有课程,只有少数几个功能.
我喜欢用PHPUnit测试脚本,以确保一切正常,但似乎我需要重写php作为一个类,我不想做(或知道如何).
例如,如果我有一个脚本,它唯一的功能是将1和2加在一起,
<?php
$a=1;
$b=2
$c=$a+$b;
?>
Run Code Online (Sandbox Code Playgroud)
如何用phpunit测试$ c == 3?
谢谢,唐
对于您的示例,您不测试$ c = 3.
但那是因为你的例子有点过于简单化了.$c脚本执行后,变量将停止存在.所以它存在的事实并不重要.您想测试代码的功能,而不是它的工作方式.
我会稍微修改你的例子:
job.php
<?php
$a=1;
$b=2
echo $a + $b;
?>
Run Code Online (Sandbox Code Playgroud)
现在我们实际上有一些输出和一些行为.对此的测试如下:
public function testJob() {
require('job.php');
$this->expectOutputString('3');
}
Run Code Online (Sandbox Code Playgroud)
PHPUnit具有对stdOut断言的能力. 我们确保代码输出我们期望的内容.您对这些类型的文件的测试将检查他们所做的是正确的.由于PHP的require语句将在该点执行文件,因此我们可以运行脚本并检查其输出.
如果您的文件具有功能,则只需包含该功能并在各自的测试中检查每个功能.