[Tutor] duplication in unit tests

Kent Johnson kent37 at tds.net
Wed Dec 9 04:46:45 CET 2009


On Tue, Dec 8, 2009 at 10:11 PM, Serdar Tumgoren <zstumgoren at gmail.com> wrote:
> Hi Kent and Lie,
>
> First, thanks to you both for the help. I reworked the tests and then
> the main code according to your suggestions (I really was muddling
> these TDD concepts!).
>
> The reworked code and tests are below. In the tests, I hard-coded the
> source data and the expected results; in the main program code, I
> eliminated the FileCleaner class and converted its methods to
> stand-alone functions. I'm planning to group them into a single,
> larger "process" function as you all suggested.
>
> Meantime, I'd be grateful if you could critique whether I've properly
> followed your advice.

Yes, this is much better. Notice how much less code it is! :-)

> And of course, feel free to suggest other tests
> that might be appropriate. For instance, would it make sense to test
> convertEmDashes for non-unicode input?

If you expect unicode input then it makes sense to test for it. If you
don't expect unicode input, it might make sense to test for an
expected error - how do you want the function to behave with invalid
inputs? You could add other tests as well, for example does it work if
there are two dashes in a row? Does splitLines() correctly remove
blank lines?

These are simple functions but the idea is to think of all the desired
behaviours and write test cases to cover them.

By the way I applaud your effort, unit testing is a valuable skill.

Kent


More information about the Tutor mailing list