Create a full crud API in Laravel - unit tests part (2)


  • Introduction
  • Steps
  • Conclusion
  • Youtube suggestion


In the previous tutorial, I taught you how to create a fully CRUD API, let's continue the journey and learn how to use Laragine to test the API that we created in the previous tutorial.


We need to do 3 things in phpunit.xml in the root directory:

  1. Change the value of the bootstrap attribute to vendor/yepwoo/laragine/src/autoload.php in PHPUnit tag (it's the same as vendor/autoload.php but with needed stuff to run the tests correctly in the generated modules and units).
  2. Add the following to the Unit test suite:
    <directory suffix=".php">./core/*/Tests/Feature</directory>
    <directory suffix=".php">./plugins/*/Tests/Feature</directory>
  3. add the following to Feature test suite:
    <directory suffix=".php">./core/*/Tests/Feature</directory>
    <directory suffix=".php">./plugins/*/Tests/Feature</directory>

Here’s the full code snippet:

  • Let’s go to PostTest.php in core/Blog/Tests/Feature
  • There’re five main functions in the file:
  • testItShouldGetListingOfTheResource() for testing get the lists of the resource.
  • testItShouldStoreNewlyCreatedResource() for testing create a new resource in the storage.
  • testItShouldGetSpecifiedResource() for testing get a specified resource.
  • testItShouldUpdateSpecifiedResource() for testing update a resource in the storage
  • testItShouldRemoveSpecifiedResource() for testing remove a resource from the storage


you can edit the unit tests function as you want, we just write the main methods for each CRUD.

Now open your terminal or git bash in your project and let's run the test, you can run one of the following commands:

  1. php artisan test
  2. ./vendor/bin/phpunit


I hope you found this article helpful. If you need any help please let me know in the comment section.

And that brings us to the end! Thank you so much for reading through this — if this article was helpful in any sense I’d really appreciate a follow to help me reach my 100-follower goal by the end of May 🙂.

Youtube Suggestion

If you want to make videos on Youtube for better clarification please write in a comment, it’ll encourage me to make videos.

Let’s connect on LinkedIn, Twitter




Software engineer, Problem solver, Geek.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

A Python Game Night

1. Interactive Guide to SQL

Four Benefits of Integrating BIM and GIS for Rail and Highways

Road network

WooKey’s Dash Wallet (Android Version) User Guide(Part 3/3) — — How to Use Your Dash Wallets?

RxJava2 Schedulers #1: Demystifying the Computation Scheduler

Coding Craziness Makes For Fun In ‘Quirky Circuits’

How to integrate external API endpoints in AppGyver

My top 10 takeaways from GHC’20

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Software engineer, Problem solver, Geek.

More from Medium

Domain Driven Development with Laravel and Livewire

Best Laravel Security Features For Your Application

Laravel Nova — Simple CRUD

Set Cron In Laravel 9 — How To Set Up Task Scheduling With Cron Job In Laravel?