On Thu, 3 Jan 2013, Japhy Bartlett wrote:

The general idea is to write tests that use your code in realistic ways and 
check the results.  So if you have a function that takes an input and returns
a result, you write a test that passes that function an input checks the 
result.  If some inputs should make it error, you write a test that checks that
it errors.
In web programming, a common thing is to make a web request with different 
variations of GET / PUT params, then check that it returns the right status
code, or that the result is valid JSON, etc.  Basically, try to simulate all 
the things a real world user would be able to use, and test that your code
does what you intend for it to do.

TDD is a good principle but usually seems a little too pedantic for real world 
programming.  Where tests (in my experience) get really useful is in
making sure that a new change hasn't unexpectedly broken something already 
written.

That's funny, I find it exactly the opposite - unless I'm writing some prototype throw-away code, doing TDD has actually exposed problems with the underlying program structure precisely because it *is* pedantic.

Granted, if I needed to get a fix in place in production code that was costing buckets of cash every minute it wasn't fixed, I'd write the code, push that out, and *then* write the tests... but when I've been practicing TDD I've not had that problem.

My experience is that it has a tendency to bundle all the development costs right up front - instead of a little here, a little there.


But... that's just my experience ;)
-Wayne
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to