Spring - 07整合Junit
阿新 • • 發佈:2020-11-18
Spring - 07整合Junit
(1)原始Junit測試Spring問題
在測試類中,每個測試方法都有以下兩行程式碼:
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml"); DataSource dataSource = app.getBean(DataSource.class);
這兩行程式碼的作用是獲取容器,如果不寫的話,直接會提示空指標異常,所以不能輕易刪除。
(2)解決思路
- 讓SpringJunit負責建立Spring容器,但是需要將配置檔案的名稱告訴它。
- 將需要進行測試的Bean直接在測試類中進行注入。
(3)測試
(3.1)匯入Spring整合Junit的座標
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.9.RELEASE</version> </dependency>
(3.2)更換註解
- 使用@RunWith註解替換原來的執行器;
- 使用@ContextConfiguration指定配置檔案或配置類;
- 使用@Autowired注入需要測試的物件
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {SpringConfiguration.class}) // @ContextConfiguration("classpath:applicationContext.xml") public class SpringJunitTest { @Autowired privateUserService userService; @Autowired private DataSource dataSource; @Test public void test1() throws Exception { System.out.println(dataSource.getConnection()); userService.save(); }
}