1. 程式人生 > 實用技巧 >Spring - 07整合Junit

Spring - 07整合Junit

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
    private
UserService userService; @Autowired private DataSource dataSource; @Test public void test1() throws Exception { System.out.println(dataSource.getConnection()); userService.save(); }
}