Tests

1.2.4

Test – Unit Tests

@Test public void getRental() { ... }
@Test (expected = NumberFormatException.class )
@Ignore
Ignore any errors

@Test (timeout=400)
Test will fail after 400 milliseconds

@Before public void prepareRecords();
Run before each unit test

@After public void cleanupJunk()
Run after each unit test

@BeforeClass void whenTestClassInstanciated();
Run once, when the test class gets instantiated

@AfterClass void whenTestClassCompleted()
Run once when the test class is dismissed

Assert.assert
There are tons of assertions, look it up

Test – Functional Tests

public class ApplicationTest extends FunctionalTest
Functional test are unit tests with an HTTP orientation

newRequest()
newResponse()
GET(request, url)
PUT(request, url)
POST(request,url)
DELETE(request,url)
assertStatus(404, response)
assertHeaderEquals(headerName, value, response)
assertContentEquals(content, response)
assertContentType(type,response)
clearCookies()

Test – Selenium Tests

#{selenium}
clearSession()
open(‘/admin’)
assertTextPresent(‘Login’)
type(‘login’, ‘admin’)
type(‘password’, ‘secret’)
clickAndWait(‘signin’)

// Verify that the user in correctly logged in
assertText(‘success’, ‘Welcome admin!’)
#{/selenium}

Test – Data loader

@Before public void setUp() { Fixtures.deleteAll();
Fixtures.load("data.yml");}
Fixtures is used to initialise the datastore before running a unit test

#{fixture delete:'all', load:'data.yml' /}
#{selenium} ... #{/selenium}
Same idea using a Selenium test