Laravel의 HTTP 테스트를 실험하여 TDD를 배우기 시작했습니다. 나는이 같은 오류를 가지고 테스트를 실행 한 후,Laravel : 파일 업로드 테스트를위한 Laravel storage facades의 가짜 메소드
public function testLoginUsingUserDeni() {
$response = $this->json('POST', '/api/v1/login', [
'email' => '[email protected]',
'password' => 'secret'
]);
$response
->assertStatus(200)
->assertJSONStructure($this->loginSuccessJsonStructure);
return $response->original['token'];
}
/**
* @depends testLoginUsingUserDeni
*/
public function testGambarBaru($token) {
Storage::fake('gambar');
$response = $this->json('POST', '/api/gambar/baru', [
'token' => $token,
'gambar' => UploadedFile::fake()->image('evidence.jpg'),
'posisi' => 1
]);
Storage::disk('gambar')->assertExists('evidence.jpg');
$response
->assertStatus(200)
->assertJSONStructure($this->gambarJsonStructure);
}
:하지만 여기 내 테스트 기능의
PHPUnit 5.7.11 by Sebastian Bergmann and contributors.
Runtime: PHP 7.0.13-0ubuntu0.16.04.1
Configuration: /home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/phpunit.xml
..E....................................... 42/42 (100%)
Time: 2.94 seconds, Memory: 20.00MB
There was 1 error:
1) Tests\Feature\Api\GambarTest::testGambarBaru
BadMethodCallException: Call to undefined method League\Flysystem\Filesystem::fake
/home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/vendor/league/flysystem/src/Plugin/PluggableTrait.php:86
/home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php:475
/home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php:328
/home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:221
/home/kromatin/Projects/PJB REMBANG/web-apps/KawistaK3_web/tests/Feature/Api/GambarTest.php:65
ERRORS!
Tests: 42, Assertions: 313, Errors: 1.
Script phpunit --color=always --verbose handling the test event returned with error code 2
testGambarBaru
기능을 실행하면 다른 기능이 잘 작동하는 동안이 오류가 발생했습니다. 그 오류는 내가 자리를 잡고있는 곳으로 향했다. Storage::fake('gambar');
.
내 테스트 기능의 목적은 내 파일 업로드 API가 제대로 작동하는지 확인하는 것입니다. 이 문서의 파일 업로드 테스트에 대한 Laravel의 설명서를 따랐습니다 : https://laravel.com/docs/5.4/http-tests#testing-file-uploads. 그러나 결과는 Storage Facade에 fake
이라는 메소드가 없다고 말했다. 벤더 디렉토리 내부에서 검색을 수행하여 Storage facades 주변의 fake
메소드를 찾았지만 찾을 수 없습니다. 나는 Laravel 5.4를 사용하고있다. 내가 놓친 것이 있습니까?
코드의'use' 부분도 포함시킬 수 있습니까? – apokryfos
나는 며칠 전에 저장 장치 외벽에 대한 가짜 방법이 추가되었다는 것을 깨달았습니다. '작곡가 업데이트'를 한 후에 문제가 해결되었습니다. 나는 작곡가 haha 과 같은 강력한 도구를 사용하여 내 의존성을 업데이트하는 것을 소홀히하는 것이 어리 석다. 답장을 보내 주셔서 감사합니다. @apokryfos :) –