PHPUnit:assertJsonStringEqualsJsonFile() 中路径的正确参数
PHPUnit: Correct Argument for Path in assertJsonStringEqualsJsonFile()
编辑:PHPUnit 版本 4.5 稳定。
official documentation 解释了函数的两个参数:
assertJsonStringEqualsJsonFile($expectedFile, $actualJson)
$expectedFile 是存储在项目中的 JSON 文件的路径。但是,我不确定 $expectedFile 路径的基本目录是什么。例如,如果我有:
project-x/tests/MyClassTest.php
project-x/MyClass.php
project-x/tests/myJson.json
如何将此函数指向 myJson.json?
当我指定
asstertJsonStringEqualsJsonFile('tests/myJson', $myArg);
我不断收到如下错误:
Failed asserting that file "tests/myJson.json" exists.
或者如果我给出整个路径:
asstertJsonStringEqualsJsonFile('/home/user-x/myproject/way/deep/tests/myJson', $myArg);
我得到:
PHPUnit_Framework_Exception: Argument #1 (No Value) of PHPUnit_Framework_Assert::assertJson() must be a string
正确的语法是什么?
您可以使用 __DIR__
魔术常量。当您在测试用例中调用 tests/MyClass.php
时,请使用:
asstertJsonStringEqualsJsonFile(__DIR__ . '/myJson.json', $myArg);
编辑:PHPUnit 版本 4.5 稳定。
official documentation 解释了函数的两个参数:
assertJsonStringEqualsJsonFile($expectedFile, $actualJson)
$expectedFile 是存储在项目中的 JSON 文件的路径。但是,我不确定 $expectedFile 路径的基本目录是什么。例如,如果我有:
project-x/tests/MyClassTest.php
project-x/MyClass.php
project-x/tests/myJson.json
如何将此函数指向 myJson.json?
当我指定
asstertJsonStringEqualsJsonFile('tests/myJson', $myArg);
我不断收到如下错误:
Failed asserting that file "tests/myJson.json" exists.
或者如果我给出整个路径:
asstertJsonStringEqualsJsonFile('/home/user-x/myproject/way/deep/tests/myJson', $myArg);
我得到:
PHPUnit_Framework_Exception: Argument #1 (No Value) of PHPUnit_Framework_Assert::assertJson() must be a string
正确的语法是什么?
您可以使用 __DIR__
魔术常量。当您在测试用例中调用 tests/MyClass.php
时,请使用:
asstertJsonStringEqualsJsonFile(__DIR__ . '/myJson.json', $myArg);