【发布时间】:2018-08-28 20:41:58
【问题描述】:
每次运行测试时,它都会在第一次运行时失败并在第二次运行时通过。
代码如下:
/** @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 语句之前运行。
如果断言首先运行,我可以让它等待我的条件测试吗?
【问题讨论】:
-
Assertion不能在if之前运行。如果您没有文件-您使用createFile创建它,这是一种方法吗?那么它应该是createFile(),但$file变量在else分支中没有变化。这就是你的测试失败的原因。 -
@u_mulder 但是 $file 没有改变也没关系,因为它有一个完整的路径和文件名!如果文件存在,断言应该返回真!但似乎我在创建文件之前进行了断言检查。为什么如果我第二次运行测试总是通过?
-
因为第二次运行测试文件是创建的。
标签: php if-statement phpunit tdd file-exists