Benito Serna
Trying to build software that works

Spec by Spec

An approach to build web applications with TDD by focusing on the use cases.

Do you feel paralyzed by TDD?

Do you want to write tests, but you have no clue of how to start?

When you are building something… Do you feel that you know how to do it, but you don’t know what to test?

Do you feel that you understand the whys of it, but every time you try to build an app TDD, you just freeze up?

Your tests are so slow, that you prefer not to write more of them?

Did you start a project using TDD, testing everything from the database to the routing, but you end feeling that it was too hard?

Do you feel that you are spending much more time testing that writing functionality?

But shouldn’t TDD help you, instead of giving you more problems?

It suppose to help you…

So why aren’t you getting this results?

It could be many things!!… like…

And then… what can you do?

Building software is hard!… And I know that TDD can help you build better software and enjoy the journey!

You can do many things about it, but I want to help you with one…

I have an special approach that has help me to really feel those benefits above… Is nothing new but is a combination of many ideas, on what abstractions to use and how to design your software to make it more easy to tests.

If have break this ideas in some posts that I want to share with you:

  1. How organizing your code in use cases can help you to start your projects using TDD
  2. A simple way to organize your app in use cases
  3. A guide to help you structure your test when using TDD with a use case approach.
  4. Use mocks to design your dependencies when using TDD with a use case approach
  5. Are you testing implementation details?
  6. Is easier to do TDD for your dependencies after you have designed their API using mocks
  7. Using end-to-end tests in your TDD cycle
  8. Not using end-to-end tests in your TDD cycle

And If you prefer to receive the articles as an email course you can signup in the next form and I will send them to you.