On 2014-08-19 12:31, Saager Mhatre wrote:

That's just a question of testing strategy. If you're writing 'elaborate' tests at every layer, you're probably validating too much or exercising too much of the system at each layer of testing. The cartesian product of tests
required to validate every implementation at a level of abstraction is
inevitable if you want confidence in all those implementations; but these need to be limited to each pair of collaborator as far as possible so that
so single test becomes too elaborate. But that's a different discussion
altogether.

However, I always got the sense that dynamic languages made this both
easier and hard at the same time. Easier in that you didn't have to declare explicit interfaces between layers; harder in that all barking ducks are
only identified at runtime!

I suppose so. My epiphany was that tests, at the end of the day, are code. They need to be maintained, refactored, cleaned up, optimised, cajoled and worshipped just like one does with the actual application. The less code I write, the better.

So, yes, it's a tradeoff. Once upon a time, a more naive version of myself loved the freedom that I got from this kind of thing. The cynical version of myself that's typing this email is not so sure anymore. He, at some level, feels that the extra headache of specifying interfaces is a better investment than using a dynamic language and writing tests to validate all the possible inputs.

I'm glad somebody finally said this; and doubly so that it was Noufal! ;)

I'm surprised that you've never heard this from me before. It's something that I decided on a LONG time ago.

_______________________________________________
BangPypers mailing list
BangPypers@python.org
https://mail.python.org/mailman/listinfo/bangpypers

Reply via email to