如何使PHPUnit等待条件测试?

时间:2018-03-20 06:10:10

标签: php if-statement phpunit tdd file-exists

每次运行测试时,它都会在第一次运行时失败并在第二次运行时通过。

以下是代码:

 /** @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语句之前运行。

如果断言先运行,我可以让它等待我的状态测试吗?

1 个答案:

答案 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);
}