I prefer using pytest since I don't have to write the boilerplate as with the unittest module. Also, the combination with pytest-cov gives nice coverage reports.
NeuralNine, thank you for another high quality, conchise and clear introduction to a Python feature. Extremely helpful and I like to comment you for the way you break down the 'problem' and turn it into a tutorial on how to approach this myself.
it sorta depends on your definition of a number, but yes, usually the statement will be false if you pass a valid number for x. this /may/ not always be true though. if you're using numpy, or another library that includes different classes for representing numbers other than the built-ins, you could find yourself in a situation where you're expecting a default float and you pass it a numpy.double and you would raise a TypeError. you should not run into this problem a whole lot, since you should know what data types you're passing as arguments, but if you're learning a new library or you're just working on some funky code with weird numerical types, but it's something worth paying attention to
I have to say that while in theory this a good way of making things I find often that testing doenst allow you to keep up the speed of the project and at the I just end up running the application and see what crashes and a folder full of unitest that became outdated
@@GSK-Techfollow the principle would make those unitests still valid, but it's coverage is so little as the project grow so fast that you won't able to make test for every unit.
@@no-wl4qw thats the reason we implement design Architectures and divide things in modules if our project is too large. Yes it turns into complex file and trees but everything is loose coupling and easy to refactor.
This is not a problem with unit testing. It shows that unit testing hasn't been properly implemented in the team. Otherwise you would not suddenly have failing tests (of course, they should run in the CI, and all new features get tests).
I have been waiting for this concept with your elequent way of teaching.
Thanks indeed not only for this episode but also for all other ones.
intro is sooo good! I would buy for a ringtone!
It's in the video description
I prefer using pytest since I don't have to write the boilerplate as with the unittest module. Also, the combination with pytest-cov gives nice coverage reports.
NeuralNine, thank you for another high quality, conchise and clear introduction to a Python feature. Extremely helpful and I like to comment you for the way you break down the 'problem' and turn it into a tutorial on how to approach this myself.
One question from the beginning: How is building a calculator class the first step if you're supposed to write your test first then code?
Well explained 🎉❤
Thank you!
Dude, i am studying at ITMO in Russia, and I really want to thank you for the video, python tests are my homework)
Thanks, it was really helpful! I've just learnt this TDD thing and wanted to try and implement it myself in my hobby project.
this is really well done thank you. I would love it you did more on TDD
would the statement if not instanace(x, int) and not instance(x, float) be always false in the case of a number?
it sorta depends on your definition of a number, but yes, usually the statement will be false if you pass a valid number for x.
this /may/ not always be true though. if you're using numpy, or another library that includes different classes for representing numbers other than the built-ins, you could find yourself in a situation where you're expecting a default float and you pass it a numpy.double and you would raise a TypeError.
you should not run into this problem a whole lot, since you should know what data types you're passing as arguments, but if you're learning a new library or you're just working on some funky code with weird numerical types, but it's something worth paying attention to
How to define test dependencies?
Which in your opinion is better, unittest or pytest?
Pytest offers more functionality and its more intuitive for me. I use it for WebDev within Selenium.
I have to say that while in theory this a good way of making things I find often that testing doenst allow you to keep up the speed of the project and at the I just end up running the application and see what crashes and a folder full of unitest that became outdated
but if we follow SOLID Principles from start , we can control outdated issues
@@GSK-Techfollow the principle would make those unitests still valid, but it's coverage is so little as the project grow so fast that you won't able to make test for every unit.
@@no-wl4qwyupp
@@no-wl4qw thats the reason we implement design Architectures and divide things in modules if our project is too large.
Yes it turns into complex file and trees but everything is loose coupling and easy to refactor.
This is not a problem with unit testing. It shows that unit testing hasn't been properly implemented in the team. Otherwise you would not suddenly have failing tests (of course, they should run in the CI, and all new features get tests).
Awesome tutorial. Thanks :)
If you are going to do this type of thing, you should really use the testing package that is the most popular. unittest is VERY old.
magic mocks and patch next?
How to do this but with notebooks?
Where is vim😢
Thx_.