I set out to learn something new or refresh my knowledge about something as much as possible. Fully understanding something really helps, you know? I'm one of those people that if they don't use it often, they forget it. Not my best quality.
I presently dove into Test Driven Development again, It was an interesting concept that I, unfortunately, didn't get to spend a lot of time on.
Test Driven Development (TDD)
Test driven development fully tests the software by repeatedly testing the software against all test causes, this encourages simple designs and inspires confidence in the final product.
On average, a developer creates 70 bugs per 1000 lines of code. Debugging them takes 75 percent of a developer’s time. Where the code has fewer bugs, the developer will spend less time fixing them.
With that being said, TDD can help the developer relax when their code doesn’t work because it focuses on smaller blocks of code and is easier to manage. It is easier to identify errors in a shorter timeframe.
A major plus is that it helps the developer enjoy more frequent experiences of working code.
Overall, it can streamline the software development process and make it more efficient by delivering feedback faster and encouraging developers to write solid, clean code.
The test driven development approach ensures that quality comes first.
Helps the development teams to understand the code base thus having better collaboration between the developers.
But, there are some downsides. If you need a quick launch of your product, TDD may not be the best approach. It’s a common notion that TDD takes more time and therefore costs more in the beginning, but that may be for only short-term projects.
There are many different testing frameworks and assertion libraries, here are a few:
Testing Frameworks
Mocha - JavaScript, runs on Node.js or in the browser.
Jest - JavaScript, runs on Node.js, React, Angular, Vue.
JMockit - an open-source testing tool.
JUnit - Java testing tool.
Assertion Libraries
Chai - for Node and browser that can be paired with any JavaScript testing frameworks.
AssertJ - for Java
those are just a few, there are many more.
I know JavaScript so my only experience is with Chai, Mocha, and Jest.