(TODO: MERGE THIS PAGE WITH Evolving Test Suite

Current Implementation

Currently most tests in the Mifos test suite are integration or functional tests that exercise end to end functionality including the database where an independent unit test could be used. A number of business objects include transaction management code in their methods which makes it difficult or impossible to test them independently of the database. There are also order dependencies between tests such that test A must run before test B or test C must not be run after test D. Each test does not clean up properly in case of a failure so that when one test fails, most or all of the tests which follow it will also fail. Finally, the dependency on Mayfly often blocks development since Mayfly's SQL parser is an incomplete implementation of the SQL standard.

Goals

Proposed Improvements

Anticipated Benefits

  1. Increase developer productivity
  2. Reduce the chance of introducing bugs
  3. Make identifying and fixing problems more efficient
  4. Ease of maintenance
    1. #* Autodiscovery will alleviate problem of forgetting to add a particular test