每次运行测试时,它都会在第一次运行时失败并在第二次运行时通过。
以下是代码:
/** @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);
}
当我删除文件并再次运行测试时,它失败了。 这告诉我断言在if语句之前运行。
如果断言先运行,我可以让它等待我的状态测试吗?
答案 0 :(得分:1)
您的断言将从不在if
之前运行。
您的测试失败,因为在else
分支中,您在使用$file
创建文件后不会更改createFile
,因此在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);
}