I just loved the way the entire tutorial was planned and executed. The build up was so apt. Loved every bit of it. Thanks for your time and effort. First time here - subscribed
Thanks! I did put a lot of thought into planning it, so that it covers all the topics with little wasted effort. I really want to respect my viewer's time - so I really appreciate your comment :)
This will rank in top 3 videos of all time in Python Unit Testing on RUclips. Had it been a category called 'Python Unit Test' in Academy Awards. It sure will win the Oscar.
Every damn coding video has a bunch of "OMG this is the best ive ever watched" comments so it's really hard to separate the shit from the average, the average from the good and the good from the great. Well this is truly great, king of kings!
Thanks my friend. I can't thank you enough for the knowledge you just shared in just 35 minutes. I had absolutely 0 experience with Unit tests in general but now I really do. I really loved the way you started small and got a bit deeper. This is what most people just don't do. You probably know about Gall's law "All complex systems work, are built on top of simpler systems that worked" Hence, if you want to build a complex system, first build a simple system that works and build on top of that. Thank you. I really mean it. You just got a new subscriber. Abel
Thank you for the thoughtful comment :) Glad you found the content useful. Stay tuned, I hope to provide more useful content right here on this channel.
I got this video from google and assumed it was a popular channel. How is it only at 22k. Very well explained vs coming to the video with a bunch of testcases written
This is by far one of the best tutorial lessons! It's like every time I'm thinking 'but why that' you continue with explaining exactly what I wanted to know!
Glad this came up on my feed, good tutorial, wish I can like twice. "-s" flag to show print statements even if the test pass was one of the many golden nuggets for me
In Such a short time you have covered so many features of Pytest...That's Amazing !!!! Loved the video and explanation! Pytest is indeed a powerful test framework !!
@@pixegami There is only one thing missing from this video and pretty much everywhere I've looked on the Internet: How to import a function in a directory from a file in another directory at the same depth. This is import for testing packages with the directory structure /src/file with /test/test_file or when one package is accessing another one. A video on that would be terrific!
Thanks! I know everyone is busy and want to learn as quickly as possible, so I aim to keep the content lean. Good to know that the effort is not wasted :)
Hey this was an EXCELLENT and concise intro to pytest! The explanations and examples were so clear, and went beyond the usual test video toy "x + y" drivel . I will strive to use the testing workflow model you demonstrated. The almighty YT algo popped this video in after a recent freecodeacademy Pytest intro video - and honestly, this beats that one by far! And it is three times as long! In fact, I'm linking this video in that video's comments! You rock! And you got a new sub!
Thank you for your kind comments :) I try hard to structure the content to be as direct and useful as possible, so I appreciate hearing whenever it helps someone out.
Excellent video! You have a clear talent for teaching and being able to express your ideas thoughtfully and in a manner that is easy to understand. I'm excited to be able to subscribe to a new channel that will soon blow up in popularity once more people see the quality of your content! I'll be able to say, _"I was there..."_ 😂 Subbed!
at 8:20 here you are teasing one function of the instance(add) but also depends on another function of that instance(size). I thought that we are suppose to isolate each test.
Great video. Could you make a part 2 of this? For example: how to work with context across multiple tests, how to work with scopes, how to work with test data for AI, different types of exceptions etc.
Interesting - I hadn't considered a part 2, but I'm keen to hear your use cases for the things you mentioned (particularly about AI testing - do you have a use case in mind for that)?
@@pixegami I worked on a personal project where a pokerbot would receive real images of pokercards and then used a simple CNN to decide which card it was. In order to test the flow I had to import the model, retrieve some test images etc. But I also just wondering in general how to combine unit testing and data science. I really enjoy developing well tested code and these jupyter notebooks are a nightmare to work with when I do anything AI related
Great explanation and flow in the video: I find myself sitting with two questions at the end though: 1. Your implementation of the fixture returned one instanciated class. What about if I want to return several values, e.g. environment values, connenction details to databases. How would I return that? Would I return a list of values? Or can I somehow bake it into the function arguments, what information I want to retrieve? 2. I find myself confused on the last part with the Mock module. The way I see it: 1. You instanciate an empty class 2. You call an empty method of this class (none of these fail because both are in fact defined, just have no content) 3. You call Mock to get a value, and you pass in the function to handle the logic. However, the mock_get_item requires an item argument passed to it, yet I do not see you pass anything. Should mock_get_item not receive a list os something that contains the items added to the cart? And in the assertion, you pass in item_database, but the way I read the code, the item_database should still be an empty class since the .get method does nothing yet..
Great questions! 1. How do I return a list of values or (anything else) from a fixture? Well, a fixture can return any type of value. So you could have a fixture that returns a tuple. Or you might choose to have a Class or a module that groups together a bunch of different values you want to use together. You are also not limited to using one fixture per test. If you made another fixture called "cart2", then you should be able to use both fixtures in the test by writing: `def test_can_get_total_price(cart, cart2)`. Take a look here for more examples: docs.pytest.org/en/6.2.x/fixture.html 2. You don't see anything being passed in to `mock_get_item` because we never use it directly in the test. We *assign* it to our item_database's "get()" function: "item_database.get = Mock(side_effect=mock_get_item)". Then we call `cart.get_total_price(...)`, which then goes on to call the item_database.get() with our arguments: "total_price += price_map.get(item)": github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/shopping_cart.py#L23 So when you say " item_database should still be an empty class since the .get method does nothing" - it's actually not true because we *mocked* the get() method to do something for us with this line. We basically 'replaced' the functionality of `item_database.get()`: github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/test_shopping_cart.py#L42 Hope this helps!
Excellent tutorial, very helpful! Just one request, is there a way you could position your mic so your keyboard is not so loud (particularly the Return-Key)? Maybe use a 'unidirectional' mic and some type of dampener under your keyboard?
Thanks for the feedback! Glad you enjoyed the video. And yes, I agree the keyboard is too loud. Sorry! I've actually upgraded my Mic to a vocal mic, and I'm using a different (softer) keyboard now in my newer videos so I hope it'll feel/sound better for you.
I don’t understand how mock_get_item knows that there are two items. It’s only called once, and without any arguments. Item_database is also just a None value. How is that mock return value able to connect these pieces without being told?
When you ask "how mock_get_item knows that there are two items" --- what indicates to you that it knows anything beyond what we told it to expect in the code snippet? `mock_get_item` actually doesn't know that there are two items (in the cart). All it knows is that when we call it with "apple", it should return 1.0, and when called with "orange" it should return 2.0. The *cart* itself knows that there are two items in the cart (because we added it), but the cart's database has been mocked with mock_get_item, so no real database is involved. Code for reference: github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/test_shopping_cart.py#L36-L40
Hmm, not sure where that is coming from. I'd probably recommend just tracing back the error to find where it's coming from, and also just updating all the dependencies so they are all on the latest version. But if it's just a warning, I don't think it should impact you.
Hi, great video thanks! Could you explain why you didnt or when to use mock.patch instead of what you did here creating an instance of the db and return a mock.
Great suggestion! `mock.patch` works too, and is probably a good way to do it. I didn't choose to use it here mainly because I wanted to make the relationship between the mock and the dependency clearer. Introducing mock.patch would introduce some new mental concepts (with it being a decorator), and I didn't want that at this stage in the tutorial. Now, in actual real projects I've used mock.patch before, but it started to become annoying when there's maybe 5-6 things I needed to patch for one test. A lot of nesting, ordinal arguments, and a lot of repetition across various test cases. I am now learning towards fixtures instead, to set up more complex mock behavior.
great video! what are you using as a terminal ? I love the way it displays the cwd as shadow instead of showing the full path , can you please share the theme name ? thanks !
Here's a section in the doc on how to specify which tests to run: docs.pytest.org/en/latest/how-to/usage.html#specifying-which-tests-to-run E.g. for a specific function you can run `pytest tests/test_mod.py::test_func`.
Great tutorial, but I still dont seem to get how the item database is getting populated. we never passed the cart values to it, so how did it even know ?
Yup! In unit tests, we don't want to use real databases or values, so we "mocK' them. We're saying "pretend I have a database, and when I query for 'x', give me '5'." This way we can just test that specific unit of the code (usually just a class or a function) without having to worry about the other parts of app.
Hi Pixegami, Python is totally new to me. I am very interested in learning it. Would you mind sending me a link to or show me how to download/install Python to my laptop? Thanks in advance.
Python is a great programming language to learn! I have a complete playlist on a learning roadmap and how to install it and learn all the basics here: ruclips.net/p/PLZJBfja3V3Rsbiz84Z63IXnTQZH_Rnfuo&si=-hMurnRNSf2s7J_m
Thanks mate! Glad you enjoyed it. :) In this video I'm using Ubuntu with a customized terminal. If you're interested in setting it up, I've got a video on that: ruclips.net/video/UvY5aFHNoEw/видео.html But these days I'm actually doing everything on an M1 Mac (just because Ubuntu doesn't support Adobe which I use for editing).
When you first write the test, they should fail because in "test driven development" you write tests before the feature. And so you then develop the feature, and if the feature works properly, the test should pass (that's how you know the feature works). In a team environment, you could have different people writing tests and writing features - allowing you to run tasks in parallel. Once the tests are passing, you basically just run the whole suite every time more features get added to the project. It's very common for new features to break something that was developed 6 months ago, for example. So the tests will help detect when that happens, and you can fix it.
For Ubuntu, I use the default terminal but I customize it with Oh My ZSH and some colors. Here's a quick video and repo on that: ruclips.net/video/UvY5aFHNoEw/видео.html
I just loved the way the entire tutorial was planned and executed. The build up was so apt. Loved every bit of it. Thanks for your time and effort. First time here - subscribed
Thanks! I did put a lot of thought into planning it, so that it covers all the topics with little wasted effort. I really want to respect my viewer's time - so I really appreciate your comment :)
I agree!! this video is best pytest tutorial
Agree 💯
This will rank in top 3 videos of all time in Python Unit Testing on RUclips. Had it been a category called 'Python Unit Test' in Academy Awards. It sure will win the Oscar.
Thank you! Glad you enjoyed it :)
Most underrated channel on RUclips 🙏🏽
Thanks! I appreciate that.
Every damn coding video has a bunch of "OMG this is the best ive ever watched" comments so it's really hard to separate the shit from the average, the average from the good and the good from the great. Well this is truly great, king of kings!
Thanks my friend. I can't thank you enough for the knowledge you just shared in just 35 minutes. I had absolutely 0 experience with Unit tests in general but now I really do. I really loved the way you started small and got a bit deeper. This is what most people just don't do. You probably know about Gall's law "All complex systems work, are built on top of simpler systems that worked" Hence, if you want to build a complex system, first build a simple system that works and build on top of that. Thank you. I really mean it. You just got a new subscriber. Abel
Thank you for the thoughtful comment :) Glad you found the content useful. Stay tuned, I hope to provide more useful content right here on this channel.
I got this video from google and assumed it was a popular channel. How is it only at 22k. Very well explained vs coming to the video with a bunch of testcases written
Coming from a TDD Laravel world, this video is unbelievably helpful in translating lots of that PHP knowledge to Python. Thank you!
One of the best videos about testing I've ever watched, that's excellent, straight to the point
Thanks! That's my goal with these videos :)
Didn't even see the time passing, very good and directly purposed video with no time waisting, thanks a lot
Nicely done. No bullshit background music, and silly-ass fancy graphics and sound effects. Just good technical knowledge, explained well.
This is by far one of the best tutorial lessons! It's like every time I'm thinking 'but why that' you continue with explaining exactly what I wanted to know!
Really glad to hear that! Thank you :)
Glad this came up on my feed, good tutorial, wish I can like twice. "-s" flag to show print statements even if the test pass was one of the many golden nuggets for me
In Such a short time you have covered so many features of Pytest...That's Amazing !!!!
Loved the video and explanation!
Pytest is indeed a powerful test framework !!
Glad you liked it :)
Loved your straight-forward approach and building of functionality as you go. Excellent work. Thanks!
Thanks! I hope it helped!
@@pixegami There is only one thing missing from this video and pretty much everywhere I've looked on the Internet: How to import a function in a directory from a file in another directory at the same depth. This is import for testing packages with the directory structure /src/file with /test/test_file or when one package is accessing another one. A video on that would be terrific!
This is one of the best videos on pytest I have seen. Thank you for it.
Thank you, I appreciate your comment!
really piqued my interest towards the end. great explanation. would love to see part 2 with more advanced test case scenarios. thanks
Very practical and accessible tutorial. I enjoy your concise and clear style. This is content with high sound to noise ratio. Subscribed!
Thanks! I know everyone is busy and want to learn as quickly as possible, so I aim to keep the content lean. Good to know that the effort is not wasted :)
Hey this was an EXCELLENT and concise intro to pytest! The explanations and examples were so clear, and went beyond the usual test video toy "x + y" drivel . I will strive to use the testing workflow model you demonstrated.
The almighty YT algo popped this video in after a recent freecodeacademy Pytest intro video - and honestly, this beats that one by far! And it is three times as long! In fact, I'm linking this video in that video's comments! You rock! And you got a new sub!
Thank you for your kind comments :) I try hard to structure the content to be as direct and useful as possible, so I appreciate hearing whenever it helps someone out.
Thank you so much!! I used to think testing was hard and I was afraid to learn, but now I've changed that!
Great video🤩
Testing seems hard because I think there's not enough education about it! But I'm glad this video helped!
Solid tutorial, great explanation. I like the way it was the closest to hands on learning without having to actually be hands on.
Awesome, thank you!
EXCELLENT Tutorial. Love your approach and style to teaching. Very clear, concise and to the point! Thank you for posting!👍
Glad you enjoyed it!
This channel deserves more subscribers
Thanks! I'm glad you think so :)
Finally, a great video to learn pytest. Really, your video helped a lot man!!
Thanks! I appreciate the comment.
super helpful. Thank you! youtube should rank your video to the 1st position
Thanks!
Great video. Please make more. You explain things without overcomplicating the process.
Thanks! More to come. Feel free to suggest topics you'd like to see.
Excellent video! You have a clear talent for teaching and being able to express your ideas thoughtfully and in a manner that is easy to understand.
I'm excited to be able to subscribe to a new channel that will soon blow up in popularity once more people see the quality of your content! I'll be able to say, _"I was there..."_ 😂
Subbed!
Thanks! I appreciate the support :)
Wow, you covered everything that confused me as a beginner! Thank you
Glad it was helpful!
Very good tutorial, explained well, clear and at a good pace!
It was a great video it helped me a lot to get started with PYTEST, assert ,fixtures and mock. I just loved it
Excelent video. You are a natural speaker. Thx!
Thank you!
The way you explained is amazing ...thanks a lot.
very cool Tutorial for pytest. Especially for beginners. Everything is crystal and clear.
Thank you! Glad it was helpful!
Best tutorial so far on pytest!
Thanks! Hope it was useful.
Great Video. I finally understood most about the pytest framework. Thamks friend
Extremely well done and clear. Thanks so much for this!
You're very welcome!
Very accessible and clear, thank you for that!
Glad it was helpful!
Thank you for sharing your talents. It’s well organized, clear, and useful.🙏🏾👨🏽💻
Thank you! Glad you found it clear!
20:07 You can also use "pytest -k test_can_get_total_price"
Ah, thanks for calling out!
I rarely comments but this is a great video on PyTest!
Perfectly explained an important topic!
Glad you liked it!
Would love to see more videos on testing, and integration test to verify end to end testing, thanks 🙏🏼
That's a great idea - thanks for the feedback :) I can definitely cover more testing topics.
Yes, please!🙏
Awesome Video...never seen such a nice explaination of things..love it!!
Glad you liked it!
Thanks for the clear and concise info!
Very clear and well spoken instructions
I hope you take this as a compliment. You are filling in the gap left by Corey Schafer!
Thank you! Corey Schafer is a legend and I'm humbled to be compared to them.
You are a good teacher, thank you
Thank you! 😃
at 8:20 here you are teasing one function of the instance(add) but also depends on another function of that instance(size). I thought that we are suppose to isolate each test.
Thanks for this tutorial, I'm new to Pytest and this was very helpful.
Nice job! Great starter for pytest. Thanks
Glad you like it!
Thank you for this video. You've done a really great job of explaining these concepts.
Thanks! I appreciate the comment :)
awesome! had everything for me to get started. side_effects ftw!
You're welcome!
I can't thank you enough for this video🙌
This helped me so much!
Glad it helped!
Great video. Could you make a part 2 of this? For example: how to work with context across multiple tests, how to work with scopes, how to work with test data for AI, different types of exceptions etc.
Interesting - I hadn't considered a part 2, but I'm keen to hear your use cases for the things you mentioned (particularly about AI testing - do you have a use case in mind for that)?
@@pixegami I worked on a personal project where a pokerbot would receive real images of pokercards and then used a simple CNN to decide which card it was. In order to test the flow I had to import the model, retrieve some test images etc. But I also just wondering in general how to combine unit testing and data science. I really enjoy developing well tested code and these jupyter notebooks are a nightmare to work with when I do anything AI related
Great tutorial! Simple and effective. Thanks!
Glad it was helpful!
Great explanation and flow in the video:
I find myself sitting with two questions at the end though:
1. Your implementation of the fixture returned one instanciated class. What about if I want to return several values, e.g. environment values, connenction details to databases. How would I return that? Would I return a list of values? Or can I somehow bake it into the function arguments, what information I want to retrieve?
2. I find myself confused on the last part with the Mock module. The way I see it:
1. You instanciate an empty class
2. You call an empty method of this class (none of these fail because both are in fact defined, just have no content)
3. You call Mock to get a value, and you pass in the function to handle the logic.
However, the mock_get_item requires an item argument passed to it, yet I do not see you pass anything. Should mock_get_item not receive a list os something that contains the items added to the cart?
And in the assertion, you pass in item_database, but the way I read the code, the item_database should still be an empty class since the .get method does nothing yet..
Great questions!
1. How do I return a list of values or (anything else) from a fixture? Well, a fixture can return any type of value. So you could have a fixture that returns a tuple. Or you might choose to have a Class or a module that groups together a bunch of different values you want to use together. You are also not limited to using one fixture per test. If you made another fixture called "cart2", then you should be able to use both fixtures in the test by writing: `def test_can_get_total_price(cart, cart2)`. Take a look here for more examples: docs.pytest.org/en/6.2.x/fixture.html
2. You don't see anything being passed in to `mock_get_item` because we never use it directly in the test. We *assign* it to our item_database's "get()" function: "item_database.get = Mock(side_effect=mock_get_item)". Then we call `cart.get_total_price(...)`, which then goes on to call the item_database.get() with our arguments: "total_price += price_map.get(item)":
github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/shopping_cart.py#L23
So when you say " item_database should still be an empty class since the .get method does nothing" - it's actually not true because we *mocked* the get() method to do something for us with this line. We basically 'replaced' the functionality of `item_database.get()`:
github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/test_shopping_cart.py#L42
Hope this helps!
Thanks for a great and simple tutorial on PyTest!
Glad it was helpful!
Excellent and comprehensive tutorial, very well explained and accessible. Best ever! Good Job!!
Great, thanks you covered enough for me to get going.
You're welcome! Good luck.
Thanks! Nice TDD tutorial.
Glad you liked it!
Thank you so much, u've made my life easier
Awesome! Glad to hear that!
What a great tutorial! Thank you!
Glad it was helpful!
This was a very helpful and clear tutorial, thank you very much!
Glad to hear it!
helpful video on unit testing! Thank you!
this was a great video. thanks for posting
Excellent content!!!
Thank you for this amazing tutorial.
I hope it was helpful!
Thank you! U totally domain the subject entirely
Glad it was helpful!
keep up the good work!
Thanks for the encouragement!
Very Nice video, Thanks man!
Glad you liked it!
Excellent tutorial, very helpful! Just one request, is there a way you could position your mic so your keyboard is not so loud (particularly the Return-Key)? Maybe use a 'unidirectional' mic and some type of dampener under your keyboard?
Thanks for the feedback! Glad you enjoyed the video. And yes, I agree the keyboard is too loud. Sorry! I've actually upgraded my Mic to a vocal mic, and I'm using a different (softer) keyboard now in my newer videos so I hope it'll feel/sound better for you.
Very useful intro, thanks.
Glad it was helpful!
very high quality video
Thanks. I appreciate it!
A very useful video, thank you!
Glad it was helpful!
Well structured!
Thank you!
I don’t understand how mock_get_item knows that there are two items. It’s only called once, and without any arguments. Item_database is also just a None value. How is that mock return value able to connect these pieces without being told?
When you ask "how mock_get_item knows that there are two items" --- what indicates to you that it knows anything beyond what we told it to expect in the code snippet?
`mock_get_item` actually doesn't know that there are two items (in the cart). All it knows is that when we call it with "apple", it should return 1.0, and when called with "orange" it should return 2.0.
The *cart* itself knows that there are two items in the cart (because we added it), but the cart's database has been mocked with mock_get_item, so no real database is involved.
Code for reference: github.com/pixegami/simple-pytest-tutorial/blob/aa65d4b457039dddaeb0a75a359f223a25ec3d09/test_shopping_cart.py#L36-L40
Thanks for your time and effort
awesome video!!!!
Thank you, I appreciate your comment!
Great tutorial! Thanks a lot.
You're welcome!
Amazing, I really enjoyed it
Awesome, thank you!
very nicely explained. Thank you
set up a run configuration for pytest but it gave DeprecationWarning: pkg_resources is deprecated as an API. How to fix?
Hmm, not sure where that is coming from. I'd probably recommend just tracing back the error to find where it's coming from, and also just updating all the dependencies so they are all on the latest version.
But if it's just a warning, I don't think it should impact you.
Which ZSH theme is that ? I would like to install the same. Looks amazing,
I have a video and a GitHub repo covering the Ubuntu ZSH theme I use: github.com/pixegami/terminal-profile
Is pytest usable for any kind of web based application or just python created applications?
Hi, great video thanks! Could you explain why you didnt or when to use mock.patch instead of what you did here creating an instance of the db and return a mock.
Great suggestion! `mock.patch` works too, and is probably a good way to do it. I didn't choose to use it here mainly because I wanted to make the relationship between the mock and the dependency clearer. Introducing mock.patch would introduce some new mental concepts (with it being a decorator), and I didn't want that at this stage in the tutorial.
Now, in actual real projects I've used mock.patch before, but it started to become annoying when there's maybe 5-6 things I needed to patch for one test. A lot of nesting, ordinal arguments, and a lot of repetition across various test cases. I am now learning towards fixtures instead, to set up more complex mock behavior.
great video! what are you using as a terminal ? I love the way it displays the cwd as shadow instead of showing the full path , can you please share the theme name ? thanks !
what are flat directories? how can i make it so i can just directly reference the file like that
Here's a section in the doc on how to specify which tests to run: docs.pytest.org/en/latest/how-to/usage.html#specifying-which-tests-to-run
E.g. for a specific function you can run `pytest tests/test_mod.py::test_func`.
Huge thanks for the vid.
Glad it helped
Great tutorial, but I still dont seem to get how the item database is getting populated. we never passed the cart values to it, so how did it even know ?
Yup! In unit tests, we don't want to use real databases or values, so we "mocK' them. We're saying "pretend I have a database, and when I query for 'x', give me '5'."
This way we can just test that specific unit of the code (usually just a class or a function) without having to worry about the other parts of app.
good video. You earn a new follower
Thanks and welcome!
Hi Pixegami,
Python is totally new to me. I am very interested in learning it. Would you mind sending me a link to or show me how to download/install Python to my laptop? Thanks in advance.
Python is a great programming language to learn! I have a complete playlist on a learning roadmap and how to install it and learn all the basics here: ruclips.net/p/PLZJBfja3V3Rsbiz84Z63IXnTQZH_Rnfuo&si=-hMurnRNSf2s7J_m
Excellent! Thank you.
very informative. Thanks
Awesome Tutorial... very useful...
Thanks! Glad you found it useful 😊
Great Tutorial Mate! Also, was wondering which OS did you use for recording? Seems v cool.
Thanks mate! Glad you enjoyed it. :) In this video I'm using Ubuntu with a customized terminal. If you're interested in setting it up, I've got a video on that: ruclips.net/video/UvY5aFHNoEw/видео.html
But these days I'm actually doing everything on an M1 Mac (just because Ubuntu doesn't support Adobe which I use for editing).
You're a great teacher.
Wonder if you have a tutorial on app structure too?
Not yet, but I'll note it down as an idea that my audience wants! Thank you.
Really nice intro.
Thanks!
And what is the case to make test that we now afterwards they gonna pass or fail?
When you first write the test, they should fail because in "test driven development" you write tests before the feature. And so you then develop the feature, and if the feature works properly, the test should pass (that's how you know the feature works). In a team environment, you could have different people writing tests and writing features - allowing you to run tasks in parallel.
Once the tests are passing, you basically just run the whole suite every time more features get added to the project. It's very common for new features to break something that was developed 6 months ago, for example. So the tests will help detect when that happens, and you can fix it.
Excellent video! it's quite clear and concise. By the way, I am curious what VSCode colorscheme you are using in the video?
Thank you! I use monokai.pro/ - I've tried a lot of different themes, but I always come back to this one.
What's your vscode theme? It 's great!
What is the terminal that you are using? Shell.
For Ubuntu, I use the default terminal but I customize it with Oh My ZSH and some colors. Here's a quick video and repo on that: ruclips.net/video/UvY5aFHNoEw/видео.html
17:19 what you should actually do, is write another test that checks if you can add 5 items and nothing happens. These two tests would be sufficient.