编辑: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
正确的语法是什么?
答案 0 :(得分:1)
你可以使用__DIR__
魔法常数。在测试用例中使用时调用tests/MyClass.php
:
asstertJsonStringEqualsJsonFile(__DIR__ . '/myJson.json', $myArg);