I am trying to write a junit test for my sample project, but don't know how to access ApplicationContext in jUnit test:
Here is the main class of the project that works:
public static void main(String[] args) { // in this setup, both the main(String[]) method and the JUnit method both specify that ApplicationContext context = new AnnotationConfigApplicationContext( HelloWorldConfiguration.class ); MessageService mService = context.getBean(MessageService.class); HelloWorld helloWorld = context.getBean(HelloWorld.class); /** * Displaying default messgae */ LOGGER.debug("Message from HelloWorld Bean: " + helloWorld.getMessage()); /** * Saving Message to database */ Message message = new Message(); message.setMessage(helloWorld.getMessage()); mService.SaveMessage(message); /** * Settting new message in bean */ helloWorld.setMessage("I am in Staten Island, New York"); LOGGER.debug("Message from HelloWorld Bean: " + helloWorld.getMessage()); /** * Saving Message in database. */ message.setMessage(helloWorld.getMessage()); mService.SaveMessage(message); /** * Getting messages from database * - display number of message(s) * - display each message in database */ List<Message> myList = mService.listMessages(); LOGGER.debug("You Have " + myList.size() + " Message(s) In The Database"); for (Message i : myList) { LOGGER.debug("Message: ID: " + i.getId() + ", Message: " + i.getMessage() + "."); } }
Now here is the junit test:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = HelloWorldConfiguration.class) public class TestApp { @Test public void testBean() { HelloWorld helloWorld = context.getBean(HelloWorld.class); helloWorld.setMessage("I Love Dogs"); Assert.assertEquals(helloWorld.getMessage(), "I Love Dogs"); } }
source share