10 3月 2008

Spring And JUnit4

嗯,先自首,活了這麼久,在今天之前,我從沒用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相關的也都很易懂。不懂的就翻書,哈哈 再次說明了,我不是老狗,充其量也不過是隻懶狗。