dapp unit test: should not rely on execution order of test cases
edchat opened this issue · 1 comments
Or if a test does have to rely on the execution order of the tests in the test suite there should be a warning in the test so that updates to the test do not break things by changing the order.
I apologize for dropping in, I was just Googling "Unit test execution order " as 'proof' for colleagues to point out unit tests should be independent and not rely (or be hampered by) on other tests, a.k.a. the order in which they're executed.
I am a firm believer that unit tests should be interdependent and be able to run in random order.
The downside is, you may need to perform per-test set-up and cleanups of testdata.
On the upside, you have higher certainty a failing test means the system being tested was changed and the assertions in that test itself are no longer correct.
At a previous employer, the unit test execution order was actually automatically hustled each time new tests were added or removed, enforcing this principle to a good degree.
Having a code base where the unit tests allow a higher degree of certainty regarding the correctness is rather comfortable when diagnosing and analyzing issues- it can save lots of time.