1.今天我在看Spring實戰這本書時,我看到了@RunWith(SpringJunit4ClassRunner.class)這樣的單元測試
package com.xuefei.spring_pro.test; import static org.junit.Assert.assertNotNull; 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.xuefei.spring_pro.cdDemo.CDPlayConfig; import com.xuefei.spring_pro.cdDemo.CompactDisc; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = CDPlayConfig.class) public class CDPlayTest { @Autowired private CompactDisc cd; @Test public void cdShouldNotBeNull() { cd.play(); assertNotNull(cd); } }
就上網了解了一下
這種寫法是為了讓測試在Spring容器環境下執行。
Spring的容器環境是啥呢?
比如常見的 Service Dao Action , 這些個東西,都在Spring容器里,junit需要將他們拿到,並且使用來測試。
注解說明:
1)@RunWith:用於指定junit運行環境,是junit提供給其他框架測試環境接口擴展,為了便於使用spring的依賴注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作為Junit測試環境。
2)@ContextConfiguration({"classes=Congfig.clsss",classpath:applicationContext.xml"}) 這里可以用classes來直接導入同包下寫的配置類。或者導入配置文件。