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

Agenda

  • Introduction
  • Steps
  • Conclusion
  • Youtube suggestion

Introduction

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.

Steps

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

Note

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

Conclusion

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

--

--

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