Stephen Vance
1 min readOct 25, 2016

--

It sounds like you may be TDDing your code rather than the value your code delivers. For libraries, these are often one and the same. However, for front ends, it’s often very different. The code is just an implementation detail for the value delivered. Testing the code couples you to the implementation. Testing the value is more resilient.

I like your list of things that make TDD hard. If I were to distill it into a common theme, it would be “TDD is hard when I don’t have a clear idea of the form the solution will take or how it will be used.” Any technology is hard to TDD when you’re coming up to fluency on it.

I would speculate that’s why you’ve struggled to TDD front ends. The value delivered is in the space of design realization and human interaction. The techniques for testing that independently from the implementation use an extra level of indirection that isn’t necessary with most library-style code.

--

--

Stephen Vance

Startup founder, software craftsman, pre-Manifesto Agilist with a strong Lean streak, technical author, keynote presenter, and part-time dog walker