1. 9

  2. 6

    In my experience people tend to be very polarized on the topic of testing. There are die-hard TDD fans and people who think of TDD as a waste of time. Ditto for integration testing and other kinds of testing. However, it seems to be relatively uncontroversial that a mature-enough or large-enough project needs testing.

    The article does a good job of highlighting one of the problems with testing in django that is probably more general: django makes it easy to be unclear about the kind of test one is writing and provides tools that encourage writing integration / end-to-end tests that input http requests and assert on responses. Writing good integration tests is much more difficult than writing good unit tests, though, and so these tests often end up being brittle and burdensome without much gain.

    Prompted by http://blog.testdouble.com/posts/2014-01-25-the-failures-of-intro-to-tdd.html and associated discussion I stumbled upon https://www.destroyallsoftware.com/. Just about every screencast is worth watching a couple of times. The screencasts really made it click for me in terms of how TDD is supposed to be used, highlighted the utility of different types of testing, and gave me a way to think about the tradeoffs of having/not-having different types of tests and such.