Integration tests differ from unit tests in that you have full access to the Griffon application within the test. The following is an integration test created using the default templateimport griffon.core.GriffonApplication
import griffon.test.*class SomeControllerTests extends GriffonUnitTestCase {
GriffonApplication app protected void setUp() {
super.setUp()
} protected void tearDown() {
super.tearDown()
} void testSomething() {
}
}
As with unit tests, you have access to all mocking facilities exposed by GriffonUnitTestCase within this test, but you also have access to a full running Griffon application. By default this application is bootstrapped to the INITIALIZE phase. It's up to you to instruct the application to move to another phase depending on what you want to test (refer to startup()
, ready()
, realize()
and show()
methods).The type of application to be run depends on the type of project and/or a configuration flag as explained next:
- if a configuration flag
griffon.application.mainClass
exists then its value will be used (assumes the value is a literal full qualified class).
- if the project is an addon then it will use
griffon.test.mock.MockApplication
- finally it will fall back to
griffon.swing.SwingApplication