[Tutor] How to write tests for main() function that does not return anything
Ben Finney
ben+python at benfinney.id.au
Wed Feb 3 16:20:48 EST 2016
Steven D'Aprano <steve at pearwood.info> writes:
> I think the right answer is that testing main() is *not* a unit test,
> it's an integration test. You're testing that the application as a
> whole works the way you expect, rather than testing individual units
> of the application (functions, class, methods, modules).
Alternatively, if you can define what ‘main’ should do in isolation from
the rest of the program, then you *can* test it in unit tests.
That requires designing ‘main’ such that you can explicitly describe its
interactions with the rest of the program; inputs, outputs, side
effects, expected behaviour when any of them change.
That exercise may lead you to conclude “wow, this actually does quite a
lot and it's difficult to describe” — and then it's a short step to
realising you should re-design the function so it has a more narrow
specification :-)
--
\ “The idea that He would take his attention away from the |
`\ universe in order to give me a bicycle with three speeds is |
_o__) just so unlikely that I can't go along with it.” —Quentin Crisp |
Ben Finney
More information about the Tutor
mailing list