如何让PHPUnit等待条件测试?
How to make PHPUnit wait for condition test?
每次 运行 测试都会在第一个 运行 失败并在第二个 运行 通过。
代码如下:
/** @test */
public function some_function_test()
{
$file = file_exists($this->path.'file');
if ($file) {
echo "\n file exists! \n";
}else{
$this->createFile;
}
$this->assertEquals($file, true);
}
当我删除文件并运行 再次测试时,它失败了。
这告诉我断言是 运行ning 在我的 if 语句之前。
如果断言是 运行ning first,我可以让它等待我的条件测试吗?
你的断言 永远不会 运行 在 if
.
之前
你的测试失败了,因为在 else
分支中,你在使用 createFile
创建文件后没有更改 $file
,所以在 else
分支中 $file
还是false
。我想您需要将 $file
更改为 true
:
public function some_function_test()
{
$file = file_exists($this->path.'file');
if ($file) {
echo "\n file exists! \n";
}else{
$this->createFile(); // you're calling a method, aren't you?
$file = true;
}
$this->assertEquals($file, true);
// or simplier:
// $this->assertTrue($file);
}
每次 运行 测试都会在第一个 运行 失败并在第二个 运行 通过。
代码如下:
/** @test */
public function some_function_test()
{
$file = file_exists($this->path.'file');
if ($file) {
echo "\n file exists! \n";
}else{
$this->createFile;
}
$this->assertEquals($file, true);
}
当我删除文件并运行 再次测试时,它失败了。 这告诉我断言是 运行ning 在我的 if 语句之前。
如果断言是 运行ning first,我可以让它等待我的条件测试吗?
你的断言 永远不会 运行 在 if
.
你的测试失败了,因为在 else
分支中,你在使用 createFile
创建文件后没有更改 $file
,所以在 else
分支中 $file
还是false
。我想您需要将 $file
更改为 true
:
public function some_function_test()
{
$file = file_exists($this->path.'file');
if ($file) {
echo "\n file exists! \n";
}else{
$this->createFile(); // you're calling a method, aren't you?
$file = true;
}
$this->assertEquals($file, true);
// or simplier:
// $this->assertTrue($file);
}