If you're looking to level up your Laravel skills? My new course "Mastering Laravel 10 Query Builder, Eloquent & Relationships" is the perfect opportunity: www.udemy.com/course/mastering-laravel-10-query-builder-eloquent-relationships/?referralCode=C784C3DB5B8925207FCB
One thing is missing. How to set up test database. (if you already have some data) So the tests will use different db and then they will wipe out the test db.
suppose i have a simple post crud. now my question is how to determine what to test? if i test each validation of a suppose store post, there may be more than 10 validations, then we have to create > 10 test methods? plus there are all these test in this videoes. making the all these test will be like creating the whole project again?
TRying to follow. But yours is assuming same versions and having PHPUnit installed correctly... I'm using Windows MS Code... PHP 8.3.7, PHPUnit 11.3.1, Composer 2.7.6 .... I can't run the commands because of version issues. VENDOR is below the root and copying that into the directory gets other errors.
Didnt get the delete user method :( Why we check if a user exists when we always create one before that ? And why at the end we hardcode assertTrue(true), isn't that way the test never possible to fail?
Regression testing basically perform after completing of retesting. The main purpose of regression testing is to check the impact of modification. Whether still our application is acting stable.
hi dude, I believe that there is an error in the code you wrote for the user delete testing.. you are creating the user with the factory, then checking if the user exists with an if statement.. but in case that statement won't be true, the test will assert true regardless.. I'm not sure if you get what I mean.. as far as I know test shouldn't contain any if statements ?!
Thank you for greate video PS. 13:00 This UserTest class was created with --unit option then Laravel extend from PHPUnit\Framework\TestCase. Without --unit, it will extend from Tests\TestCase.
Yes, PHPUnit can be used for functional testing in PHP. It allows for the creation of automated tests that simulate user interactions with the application and can test the application's functionality as a whole.
Please any idea why my php artisan test gives this? I am using Lumen. >Command "test" is not defined. >Do you want to run "make:test" instead? (yes/no) [no]:
Try running composer dump-autoload in case you upgraded recently. Otherwise try to delete your vendor directory and try running composer install to see if that helps
@@codewithdary that's odd. i think a better approach is to clone the existing DB schema and append _test to the DB name. then delete that DB after the tests are done
@@codewithdary but there's an option for data persistence during tests, right? for example i want to test the relations. i would send API json with a mix of bad and good test data, and i want to count that only good data are the ones that are actually saved, right? i could be wrong but other frameworks use a cloned DB for tests and then drops that DB once the tests are done, so your current DB is untouched. in laravel, it's like setting the flag --env=.env.testing, using a test DB. although other frameworks does it implicitely.
@@codewithdary I'd ordinarily agree with you - and I think you've done a great job putting this video together - but you are saving data to the db at 20:04 ( czcams.com/video/UjA-16diixc/video.html ) . Laravel has a doc on testing an it does state that it will auto create a testing db and tear it down after tests..
Hi, Dary, I came across your channel, when I tried to find a Sanctum puzzle. The puzzle is when using Sanctum, it will generate a token, then send a request with the correct token to backend, it will work, it is great. But if I modify the token to make the wrong one, then send a request with the postman, it won't show any error, it will redirect to login page directly. So do you know how show an error message when send a wrong token to the backend?
Hi Ramziddin, I found a pretty interesting comment on the internet about testing: what do you do when you write code without tests? after almost every change you run the whole application, you wait until it starts, you go to the page you've just changed, you input some data, you press the button and you check... if the answer is correct, if the popup appeared, if the mail was sent and so on. you DO test. but you just do it manually. and you repeat all those tests after every change. and if you don't repeat them then you will find bugs on production and you will have to correct them quickly under stress and you will have to again check if you've fixed them correctly. and you will have to do it manually... Hope this makes sense.
if I want to test function or Controller I already created did i need to make php artisan make:test UnitTest and copy my function in it ? and same question with test database
You should be verifying responses in tests, and not the entire controller you created. If you are using the database, you should check if the right access methods are triggered.
@@codewithdary I have problem with http test when I try it it give this error Failed asserting that two strings are equal. and aim an arrow to response->assertRedirect('/signin');
If you're looking to level up your Laravel skills? My new course "Mastering Laravel 10 Query Builder, Eloquent & Relationships" is the perfect opportunity: www.udemy.com/course/mastering-laravel-10-query-builder-eloquent-relationships/?referralCode=C784C3DB5B8925207FCB
One thing is missing. How to set up test database. (if you already have some data) So the tests will use different db and then they will wipe out the test db.
I am absolutely in love with your channel and I am learning laravel right now because you teach so damn great 😄
Thank you so much Amir, appreciate it! :D
13:05 its not a bug , you're writing test in the Unit folder , to test http requests you must write tests inside the feature folder
This video help me to learn UnitTest easily. Thanks Dary
Love to hear that Akhmad!
LETS CONNECT THROUGH INSTAGRAM.
instagram.com/codewithdary
Nice tutorial. Learned a lot, understanding of tests for beginner. Thanks for sharing.
Thank you for watching Atiqur!
Wowwww, I really love your videos..Thank u very much.Looking for more Laravel video
Thank you, I will do!
Great! Thank you for introduction in the testing.
My pleasure Mūzika!
Thank You so much for this great video ..please keep making videos on Laravel Testing !!!!
Thank you Mourad!
suppose i have a simple post crud. now my question is how to determine what to test? if i test each validation of a suppose store post, there may be more than 10 validations, then we have to create > 10 test methods? plus there are all these test in this videoes. making the all these test will be like creating the whole project again?
best video about testing , you have only one video about it?
Yes! I'll be making more soon :)
Movie is beautiful. This scene is phenomenal. I was feeling every grams of my body during this scene. My heart was broken and my stomach was hurting.
Ehhh, thank you...
Awsome video, very well explained!
Good clear starter video for testing
Thank you Tristan!
TRying to follow. But yours is assuming same versions and having PHPUnit installed correctly... I'm using Windows MS Code... PHP 8.3.7, PHPUnit 11.3.1, Composer 2.7.6 .... I can't run the commands because of version issues. VENDOR is below the root and copying that into the directory gets other errors.
Didnt get the delete user method :( Why we check if a user exists when we always create one before that ? And why at the end we hardcode assertTrue(true), isn't that way the test never possible to fail?
Really appreciate your hard work, learnt so much, thanks alot 👍
Happy to hear that Muhammad, thank you.
Very nice content, if you have tine to upload a video with pest and laravel, anyway thanks
Definitely something I will be doing in the future!
Your content is awesome! Make please a tutorial video with testing on Symfony if it's possible)
Thank you! Definitely something I would love to do.
This video help me a lot, thank you so much😄
You're welcome 😊
Thanks, It is excellen to get code examples too. Thanks.
I got you!
your a king , thank u very much
Great video, helpful as always. Would you think about doing a series on building a REST API in laravel? I would absolutely love that
I have a crash course available: czcams.com/video/xvqPEEpRBJ4/video.html
This is an easy video to learn laravel test
I thought regression testing was making sure existing functionality doesn't break when new functionality is released. Hence the term "regression".
Regression testing basically perform after completing of retesting. The main purpose of regression testing is to check the impact of modification. Whether still our application is acting stable.
hi dude, I believe that there is an error in the code you wrote for the user delete testing.. you are creating the user with the factory, then checking if the user exists with an if statement.. but in case that statement won't be true, the test will assert true regardless.. I'm not sure if you get what I mean.. as far as I know test shouldn't contain any if statements ?!
Up!
Thank you for greate video
PS. 13:00 This UserTest class was created with --unit option then Laravel extend from PHPUnit\Framework\TestCase. Without --unit, it will extend from Tests\TestCase.
Didn't I mention that? Might have forgotten! Thank you anyways! :)
Yeah i think it supposed to use UserTest inside Feature folder, right?
Wonderful! I love your videos! Please make some about GraphQL (Lighthouse)
Thank you Josue! I'll keep that in the back of my mind! :)
Thanks for the helpful video
love it. waiting for new one
Very soon!
Thanks for the video what do you use to show current path in the terminal?
ohmyz.sh/
Great tutorial , realy you are the best .👌👍
You are the best Houssem!
Thank you for this tutorial!
Thank you for watching :)
Can it do functional testing ?
Yes, PHPUnit can be used for functional testing in PHP. It allows for the creation of automated tests that simulate user interactions with the application and can test the application's functionality as a whole.
Please any idea why my php artisan test gives this? I am using Lumen.
>Command "test" is not defined.
>Do you want to run "make:test" instead? (yes/no) [no]:
Try running composer dump-autoload in case you upgraded recently.
@@codewithdary just did that but same thing
Great stuff as always
Thanks again!
Great video. Thanks
You are welcome Carlos!
maaan thank you 💛
Great work 💙👍
Thank you! Cheers!
Thanks a lot, really helpful
You’re welcome Anuradha! :)
"Command test is not defined" while using php artisan test.
Try running composer dump-autoload in case you upgraded recently. Otherwise try to delete your vendor directory and try running composer install to see if that helps
Thanks a lot. It helped me .....
Glad to hear that Sumaya!
not complete for a tutorial. but good for beginners. 🙏
In depth testing will be coming soon! :)
Part2 - Laravel unit testing video link please ?
There is no part two. Probably in the future :)
I noticed feature tests use the same DB during tests. is this correct? or should there be another separate DB to run tests?
It is yes, you need to test functionalities that interacts with the database to make sure that your app works on production
@@codewithdary that's odd. i think a better approach is to clone the existing DB schema and append _test to the DB name. then delete that DB after the tests are done
But why? You won't actually change data because your just writing tests.
@@codewithdary but there's an option for data persistence during tests, right? for example i want to test the relations. i would send API json with a mix of bad and good test data, and i want to count that only good data are the ones that are actually saved, right? i could be wrong but other frameworks use a cloned DB for tests and then drops that DB once the tests are done, so your current DB is untouched. in laravel, it's like setting the flag --env=.env.testing, using a test DB. although other frameworks does it implicitely.
@@codewithdary I'd ordinarily agree with you - and I think you've done a great job putting this video together - but you are saving data to the db at 20:04 ( czcams.com/video/UjA-16diixc/video.html ) . Laravel has a doc on testing an it does state that it will auto create a testing db and tear it down after tests..
Hi, Dary, I came across your channel, when I tried to find a Sanctum puzzle. The puzzle is when using Sanctum, it will generate a token, then send a request with the correct token to backend, it will work, it is great. But if I modify the token to make the wrong one, then send a request with the postman, it won't show any error, it will redirect to login page directly. So do you know how show an error message when send a wrong token to the backend?
This is late but in case any one still needs it, in your middleware, you should specify the 'auth:sanctum' middleware for your api
Hi , i have questions about testing ! Why it is important testing.
Hi Ramziddin, I found a pretty interesting comment on the internet about testing:
what do you do when you write code without tests? after almost every change you run the whole application, you wait until it starts, you go to the page you've just changed, you input some data, you press the button and you check... if the answer is correct, if the popup appeared, if the mail was sent and so on. you DO test. but you just do it manually. and you repeat all those tests after every change. and if you don't repeat them then you will find bugs on production and you will have to correct them quickly under stress and you will have to again check if you've fixed them correctly. and you will have to do it manually...
Hope this makes sense.
if I want to test function or Controller I already created did i need to make php artisan make:test UnitTest and copy my function in it ? and same question with test database
You should be verifying responses in tests, and not the entire controller you created.
If you are using the database, you should check if the right access methods are triggered.
@@codewithdary
thank you 👍🏼
@@codewithdary
I have problem with http test when I try it it give this error Failed asserting that two strings are equal. and aim an arrow to response->assertRedirect('/signin');
Is it possible to execute the command in CMD because Im using sublime as my texteditor
Yes definitely. You can also install an extension named “terminus” which gives you a CMD in sublime text
you are legend
No, you are Victor!
Thanks bro
Welcome brother!
What is your ZSH theme?
I have a complete video where I setup my terminal! It's under the Laravel video series.
i came here from your github
That’s awesome! Love to hear that :)
What is your theme 👍👍👍👍
I installed a extension called Material Theme, it was one of the options!
please make laravel react based project
👍
👌
Not very beneficial
I'm sorry :(