DEV Community

loading...

Discussion on: Tried TDD and didn't realize the benefits? Try it the next time you get writer's block

Collapse
alchermd profile image
John Alcher

One thing that made me "get" testing is that I'm going to manually test my application anyway — why not automate it? Life is too short to click through things / run functions to see their results. Once I'm writing automated tests, I realized that I'm going to inevitably forget to write them — why not write them first? Can't be too cautious, right? Thus I'm doing TDD ever since.

Collapse
nickyhajal profile image
Nicky Hajal

This was big for me as well!

Realizing that automated testing is just the more efficient testing workflow in most cases really helped me get into it. Then having the tests in the future is just an added benefit.

What sometimes still holds me back is tedious setup + having to mock things, creating extra work.

Still trying to get more efficient at that.

Collapse
ccleary00 profile image
Corey Cleary Author

Totally, I had a similar realization when I first started getting into testing - "I know I need to write tests for this, so might as well write them first and get it out of the way"

But as I started to like writing tests more and more, "getting them out of the way" felt like less of a pain and some thing I enjoyed. For me that's when using TDD as a design tool really started to click.

Collapse
alchermd profile image
John Alcher

... "getting them out of the way" felt like less of a pain and some thing I enjoyed.

Same. I can say as far that if I'm not doing TDD on a project, it's not a project that I take seriously. I hope I'm not growing into a TDD zealot, but it's a thing that makes too much sense to not do.

Thread Thread
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

it's a thing that makes too much sense to not do

I'd reword this to say:

It's a thing that makes too much sense to not do, as long as it doesn't get in the way of the actual dev work.

We wanted to take a TDD approach for my senior project, and that idea quickly went out the window as we realized that the app we were building would require a lot of time and effort, and that TDD would only slow us down and distract from our main goal. Testing is important, but it's also costly. So you have to also consider how important it is to have a set of well-written tests + a half-baked app, versus having a fully developed app that may have bugs that need fixing (but very few if any tests).