2017-09-08 19 views
1

phpunitを使用してlaravelアプリケーションのテストを行っています。以下のファイルを実行してファイルが存在することを確認しようとしています。BadMethodCallException:未定義のメソッドを呼び出します。League Flysystem Filesystem :: assertExists

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

私がテストを実行すると、次のエラーが発生します。

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

助けてください。

+0

assertExists私は、次のページでこのassertExistsがhttps://laracasts.com/discuss/channels/testing/how-to-check-if-uploaded-file見つかったディスク – McStuffins

+0

から返される関数ではありません-exists-in-storage-if-name-has-hashed?page = 0は、ファイルが存在するかどうかをテストする別の方法です。 –

答えて

2

これは間違っています。まず、StorageオブジェクトにassertExists()を呼び出しています。代わりにTestCaseオブジェクトのassert関数を呼び出す必要があります。さらに、assertExists()はなく、assertFileExists()assertDirectoryExists()のみですが、特定のパスのファイルが存在する場合にアサートされます。

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

とこの関数は真を

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

を返すことを主張:あなたは何をすべき

はこのように、特定のファイルがその中に存在していることを確認し、あなたのStorageオブジェクトのメソッドを持っていますあなたのクラスの詳細はわかりませんが、代わりにStorageのパスを返すメソッドを持つことができます。

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

Reference

+0

ご協力いただきありがとうございます。このようなファイルを確認できました。 $ this-> assertFileExists(storage_path( 'app/flatfiles/mlb_players.csv')); –

+0

あなたはそれを修正できるとうれしいです!私はちょうどあなたがLaravelを使っていたことを何とか見逃していたことに気がつきました'assertExists()'メソッドは確実に 'FilesystemAdapter'クラスにありますので、Laravelバージョン(' composer update')を更新してみてください。 [こちらをご覧ください](https://github.com/illuminate/filesystem/blob/master/FilesystemAdapter.php#L50) – ishegg

+0

私は以前に作曲者の更新を試みたことがありましたが、私はまだ同じエラーがあります。 –

関連する問題