如何让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);
}