Cara menggunakan update phpunit laravel

I was trying to learn PHPUnit on laravel and I got a little problem. I managed to make a test for data input and data validation but for updating the data somehow it didn't work.

This is my update function in controller

public function update(PostRequest $request, PostModel $post) { $update = $request->all(); $update['category_id'] = $request->category; $post->update($update); $post->TagModels()->sync($request->tag); session()->flash('success', 'Update Post Success'); return redirect('post'); }

This my route for update

Route::patch('post/{post:slug}/update', 'PostController@update');

This my test for update

public function test_post_update() { // $this->withoutExceptionHandling(); $data = factory(PostModel::class)->make(); $response = $this->post('post/store', [ 'title'=> $data->title, 'body'=> $data->body, 'category'=> $data->category_id, 'tag'=> [rand(1, 5)], ]); $post = PostModel::first()->slug; // $data2 = factory(PostModel::class)->make(); $this->patch('post/'.$post.'/update', [ 'title'=> 'update', 'body'=> $data->body, 'category'=> $data->category_id, 'tag'=> [rand(1, 5)], ]); $data->refresh(); $this->assertEquals('update', PostModel::first()->title); }

I always get the following error

> Executing task: c:/xampp/htdocs/my-app-test/vendor/bin/phpunit.bat c:/xampp/htdocs/my-app-test/tests/Unit/PostTest.php --filter '^.*::test_post_update' < PHPUnit 8.5.9 by Sebastian Bergmann and contributors. F 1 / 1 (100%) Time: 334 ms, Memory: 24.00 MB There was 1 failure: 1) Tests\Unit\PostTest::test_post_update Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'update' +'Laudantium voluptatibus voluptatem ipsam sit.' C:\xampp\htdocs\my-app-test\tests\Unit\PostTest.php:216 FAILURES! Tests: 1, Assertions: 1, Failures: 1.

Please tell me where I went wrong in my code.

New error after i uncomment $this->withoutExceptionHandling();

This the new error

1) Tests\Unit\PostTest::test_post_update Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post_id' cannot be null (SQL: insert into `post_tag` (`post_id`, `tag_id`) values (?, 1))

Cara Upgrade Laravel 6 ke Laravel 7



Langkah Pertama

Silahkan buka projek kalian, buka composer.json kemudian yang perlu kita perhatikan ada beberapa versi dependencies yang harus kita upgrade.

Beberapa versi dependencies yang perlu diupgrade diantaranya:

  • "laravel/framework": "^6.2" menjadi "^7.0"
  • "facade/ignition": "^1.4" menjadi "^2.0"
  • "nunomaduro/collision": "^3.0" menjadi "^4.1"
  • "php": "^7.2" menjadi "^7.2.5"
  • "fideloper/proxy": "^4.0" menjadi "^4.2"
  • "mockery/mockery": "^1.0" menjadi "^1.3.1"
  • "phpunit/phpunit": "^8.0" menjadi  "^8.5"


Dan juga tambahkan ini pada objek "require"

  • "fruitcake/laravel-cors": "^1.0",
  • "guzzlehttp/guzzle": "^6.3",



Langkah Kedua

Silahkan buka file app/Exceptions/Handler.php, nah disini kita harus mengganti semua kode Exception menjadi Throwable.



Langkah Terakhir

Ketikkan perintah composer update. Tunggu beberapa menit, agak lama sih proses ini, tergantung koneksi internet juga.




Sumber: //www.indeveloper.id/2020/03/tutorial-upgrade-ke-laravel-7.html

Artikel Terbaru

Postingan terbaru

LIHAT SEMUA