On Tue, 28 Sep 2010 08:07:30 am Modulok wrote: > On 9/27/10, Steven D'Aprano <st...@pearwood.info> wrote: > > On Tue, 28 Sep 2010 04:03:17 am Modulok wrote: > >> List, > >> > >> When using the unittest module, tests are run in alphanumeric > >> order. What's the suggested way of specifying a test order? > > > > There isn't one. It shouldn't matter what order the tests run, no > > test should *rely* on another test. > > > > (Although of course, if one test fails, any tests which assume the > > missing functionality will also fail.) > > In an ideal world, I agree. This is possible for pure functional > programming where state is avoided. However, when dealing with object > oriented, imperative programming, state changes cannot be avoided. > Thus if a method requires an object be passed to it, I'd like to > verify that object is being constructed correctly by the object > factory, before verifying that the method which uses said object, is > correct.
It is reasonable to write two tests: test_construction # verify object is constructed correctly test_method # verify object is used correctly But you shouldn't rely on the tests being *executed* in any specific order, just as you shouldn't rely on them being *written* in any specific order. You should be able to go back at any time and add an extra test: test_special_construction even though test_method already exists. Likewise because every test is independent, it doesn't matter whether test_construction executes before or after test_method, or even simultaneously! (An advanced testing infrastructure might execute each test in its own thread.) Tests can have their own setup and teardown code. You should not put the setup code to test_method in test_construction -- they should be independent. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor