idea 的SpringBoot專案做單元測試
阿新 • • 發佈:2018-12-24
SpringBoot專案的一個功能開發完成之後,需要對功能做單元測試,需要專案有單元測試的功能,這個專案是一個新建的專案,所以需要自己弄,下面記載一下步驟。
首先,我們使用點選需要做單元測試的類名,右擊使用idea自帶生成單元測試檔案的功能:
1.點選檔案 -> GO TO -> Test
2.
3.
4.生成測試檔案
5.加單元測試註解
6.在測試類中新增測試邏輯並執行
結果,控制檯報錯:java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test
從一個國外的帖子看到解決方法:
1.首先建立一個用於所有單元測試類繼承的abstract類:
/**
* Created by yefuliang on 2018/2/2.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = BinggouFaApplication.class)//該class是SpringBoot專案的Application
@ActiveProfiles("test")
@WebAppConfiguration
@TestPropertySource({//引用的配置檔案
"classpath:/status_code_des.properties" ,
"classpath:/config.properties",
"classpath:/status_des.properties"
})
public abstract class SpringBootTestAbstract {
}
2.SpringBoot專案的Application類上加@EnableAutoConfiguration 註解
@SpringBootApplication
@RestController
@ComponentScan(basePackages={"**.***.**"})
@ServletComponentScan (basePackages={"**.***.**"})
@MapperScan(basePackages={"**.***.**"}, sqlSessionFactoryRef = "sqlSessionFactory")
@EnableScheduling //定時任務註解
@EnableAutoConfiguration
public class BinggouFaApplication {
public static void main(String[] args) {
SpringApplication.run(BinggouFaApplication.class, args);
}
}
3.單元測試類繼承剛才新建的abstract類:
4.執行測試方法,結果成功執行單元測試