BadMethodCallException:调用未定义的方法League \ Flysystem \ Filesystem :: assertExists

时间:2017-09-08 15:27:50

标签: php laravel phpunit

我正在使用phpunit进行laravel应用程序的测试我正在尝试运行以下内容以确保该文件存在。

Storage::disk('local')->assertExists("mib_players.csv");

但是当我运行测试时,我收到以下错误。

BadMethodCallException: Call to undefined method League\Flysystem\Filesystem::assertExists

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

你有两个错误。首先,您在assertExists()对象上调用Storage。您需要在TestCase对象上调用assert函数。此外,没有assertExists(),只有assertFileExists()assertDirectoryExists(),但是如果特定路径中的文件存在,则会断言。

你应该做的是在你的Storage对象中有一个方法来检查其中是否存在某个文件,如下所示:

public function fileExists($path) {
   // check if file exists
   return true; // or false
}

然后断言该函数返回true

$this->assertTrue(Storage::disk('local')->fileExists("mib_players.csv"));

我不知道你班级的细节,但是你可以有一个方法返回Storage的路径,然后你可以这样做:

$this->assertFileExists(Storage::disk("local")->getPath()."mib_players.csv");

Reference