2013-04-30 10 views
6

benim örnek proje için bir junit testi yazmaya çalışıyorum ile ilkbaharda junit testi Yazmaya çalışıyorum ama jUnit Testi ApplicationContext erişmek nasıl bilmiyorum: BuradaJavaConfig

ana sınıftır işleri projesi: Sen autowiring kullanabilirsiniz

@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"); 
    } 
} 

cevap

12

:

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() + "."); 
     } 
    } 

Şimdi burada junit testidir. Not: Çoğu zaman uygulama içeriğinin kendisi ile ilgilenmezsiniz, ancak onunla ilişkili bir veya daha fazla fasulyede.

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = HelloWorldConfiguration.class) 
public class TestApp { 

    @Autowired 
    HelloWorld helloWorld; 

    @Test 
    public void testBean() { 
     helloWorld.setMessage(...); 
     // asserts, etc. 
    } 
} 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = HelloWorldConfiguration.class) 
public class TestApp { 

    @Autowired 
    ApplicationContext applicationContext; 

    HelloWorld helloWorld; 

    @Before 
    public void setUp() { 
     helloWorld = context.getBean(HelloWorld.class); 
    } 

    @Test 
    public void testBean() { 
     helloWorld.setMessage(...); 
     // asserts, etc. 
    } 
} 

Detaylar için reference docs bakınız: Aşağıda aslında aynı şeyi yapar iki örnektir.