@Stateless
public class StandaloneBean {
private static final String message = "Greetings!";
public String returnMessage() {
return message;
}
}
Java Platform, Enterprise Edition (Java EE) 8 The Java EE Tutorial |
Previous | Next | Contents |
The standalone
example application demonstrates how to create an
instance of the embedded enterprise bean container in a JUnit test class
and call a session bean business method.
The following topics are addressed here:
Testing the business methods of an enterprise bean in a unit test allows developers to exercise the business logic of an application separately from the other application layers, such as the presentation layer, and without having to deploy the application to a Java EE server.
The standalone
example has two main components: StandaloneBean
, a
stateless session bean, and StandaloneBeanTest
, a JUnit test class
that acts as a client to StandaloneBean
using the embedded container.
StandaloneBean
is a simple session bean exposing a local, no-interface
view with a single business method, returnMessage
, which returns
"Greetings!" as a String
:
@Stateless
public class StandaloneBean {
private static final String message = "Greetings!";
public String returnMessage() {
return message;
}
}
StandaloneBeanTest
calls StandaloneBean.returnMessage
and tests that
the returned message is correct. First, an embedded container instance
and initial context are created within the setUp
method, which is
annotated with org.junit.Before
to indicate that the method should be
executed before the test methods:
@Before
public void setUp() {
ec = EJBContainer.createEJBContainer();
ctx = ec.getContext();
}
The testReturnMessage
method, annotated with org.junit.Test
to
indicate that the method includes a unit test, obtains a reference to
StandaloneBean
through the Context
instance, and calls
StandaloneBean.returnMessage
. The result is compared with the expected
result using a JUnit assertion, assertEquals
. If the string returned
from StandaloneBean.returnMessage
is equal to "Greetings!" the test
passes:
@Test
public void testReturnMessage() throws Exception {
logger.info("Testing standalone.ejb.StandaloneBean.returnMessage()");
StandaloneBean instance = (StandaloneBean)
ctx.lookup("java:global/classes/StandaloneBean");
String expResult = "Greetings!";
String result = instance.returnMessage();
assertEquals(expResult, result);
}
Finally, the tearDown
method, annotated with org.junit.After
to
indicate that the method should be executed after all the unit tests
have run, closes the embedded container instance:
@After
public void tearDown() {
if (ec != null) {
ec.close();
}
}
Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server).
From the File menu, choose Open Project.
In the Open Project dialog box, navigate to:
tut-install/examples/ejb
Select the standalone
folder and click Open Project.
In the Projects tab, right-click standalone
and select Test.
This will execute the JUnit test class StandaloneBeanTest
. The Output
tab shows the progress of the test and the output log.
Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server).
In a terminal window, go to:
tut-install/examples/ejb/standalone/
Enter the following command:
mvn install
This command compiles and packages the application into an JAR file, and
executes the JUnit test class StandaloneBeanTest
.
Previous | Next | Contents |