JUnit

Setting up a test

There are several annotations that facilitate the initialisation of a test, allowing set up of variables and the environment before any of the tests in the class are run. These are:

  • @Before

This code is executed before each test.

  • @BeforeClass

This code is executed once, before the entire test fixture. This is done with computationally expensive methods or when they share resources. A good example is the establishing a database connection that all the tests use.

Code marked @BeforeClass is run as static initialiser, and so it will run before the class instance of the test fixture is created. Note that the static keyword therefore has to be added before the @BeforeClass method.

  • @BeforeEach and @BeforeAll are the equivalents of @Before and @BeforeClass in JUnit4.

  • Similarly there is a @After and an @AfterClass (throws exception) which are used to execute code after the tests have finished.

Different assertions

  • verifyNoMoreInteractions()

Checking for an exception

Use the @Rule annotation to initialise an ExpectedException.

@Rule
public ExpectedException mExceptionGrabber = ExpectedException.none();

Then state when in the test an exception is expected and then after that fail the test, so that it fails if the test does not fail when stated.

mExceptionGrabber.expect(NullPointerException.class);
mChartDAO.getChartRecordFromId(RECORD_ID_1);

// Shouldn't get here
fail();

results matching ""

    No results matching ""