Spring Junit集成測試
阿新 • • 發佈:2018-01-27
blog simple 註解 rac red runner sys 其他 ext
例子如下:
package com.junge.demo.spring; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.junge.demo.spring.service.IPerface; import com.junge.demo.spring.service.ServiceConfig; /** * Unit test for simple App. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes=ServiceConfig.class) public class AppTest { @Autowired private List<IPerface> perfaceList; @Testpublic void addTest() { System.out.println("333"); } @Test public void playTest() { assertEquals(2, perfaceList.size()); } }
其中用到了2個註解
1.@RunWith 這是Junit提供的,註意Junit版本要和spring兼容,例如spring用4.1.13.RELEASE版本,Junt可以用4.12版本,如果不兼容,用例跑不起來。
2.@ContextConfiguration 這是spring提供的註解,用來配置spring的上下文配置,如果是使用javaconfig風格配置的,如上面例子所示;如果是使用xml文件配置的,可以用下面的配置:
@ContextConfiguration(locations = { "classpath:applicationContext.xml" })
一般在項目中測試時,會配置一個基類測試類,其他測試類都繼承自該基類,這樣就不需要在每一個測試類中添加配置。
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContext.xml" }) public abstract class BaseServiceTest { }
Spring Junit集成測試