嗯,先自首,活了這麼久,在今天之前,我從沒用JUnit4寫過任何一個Spring 有關的Unit Test
反正AbstractDependencyInjectionSpringContextTests跟AbstractTransactionalSpringContextTests也夠用。。。
但是為了說明自已不是老狗,只好學學這個,看看可不可以不要當老狗…
準備工作
JDK一定要是JDK5以上(沒的話就收工),
而pom.xml 要加入的Dependency:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>2.5.2</version>
</dependency>
然後在要測試的Class上加入幾個Annotation
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"/applicationContext.xml"})
public class YourTest {
@Autowired
private MasterDAO masterDAO;
@Before
public void init() {
}
@After
public void destroy() {
}
@Test
public void testList() {
this.masterDAO.findAll();
}
}
@RunWith(SpringJUnit4ClassRunner.class)一定要加,讓Spring能正確執行準備工作
@ContextConfiguration指定要讀入的Spring XML Configurations
@Autowired 利用名稱將Spring XML Configurations相同名稱的Bean inject到這個Property, @Resource功能類似,但可以指定Bean的名字
@Before and @After就同於之前的setup and teardown,
@Test 就代表是要執行的Test Method
前後不到30分鐘,就算搞定可以收工了
其他跟Transaction相關的也都很易懂。不懂的就翻書,哈哈
再次說明了,我不是老狗,充其量也不過是隻懶狗。