8.1單元測試
阿新 • • 發佈:2021-01-20
技術標籤:SpringBoot社群專案
Spring Boot Testing
(1)依賴:spring-boot-starter-test
(2)包括:Junit、Spring Test、AssertJ
Test Case
(1)要求:保證測試方法的獨立性
(2)步驟:初始化資料、執行測試程式碼、驗證測試結果、清理測試資料。
(3)常用註解:@BeforeClass(在類初始化之前)、@AfterClass、@Before(每調一個測試方法前)、@After(每調一個測試方法後)。
執行測試方法之前就初始化一份資料,測試之中就用這一份資料,測試完後去驗證結果,最後清理資料,那麼下次測試資料還會初始化,這樣的話測試方法就保證了獨立性。
//驗證幾個註解的作用
@Autowired
private DiscussPostService discussPostService;
private DiscussPost data;
//這個方法要在類初始化之前執行的,只執行一次,所以是靜態的
@BeforeClass
public static void beforeClass() {
System.out.println("beforeClass");
}
//方法執行之後啟用
@AfterClass
public static void afterClass() {
System.out.println("afterClass");
}
//每次掉方法都執行,所以不能是靜態的
@Before
public void before() {
System.out.println("before");
// // 初始化測試資料
// data = new DiscussPost();
// data.setUserId(111);
// data.setTitle("Test Title");
// data.setContent("Test Content");
// data.setCreateTime(new Date());
// discussPostService.addDiscussPost(data);
}
@After
public void after() {
System.out.println("after");
// // 刪除測試資料
// discussPostService.updateStatus(data.getId(), 2);
}
@Test
public void test1() {
System.out.println("test1");
}
@Test
public void test2() {
System.out.println("test2");
}
完整測試類:
斷言:判斷當前當前條件是否成立,成立就啥也不發生,不成立就拋異常
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class SpringBootTests {
//驗證幾個註解的作用
@Autowired
private DiscussPostService discussPostService;
private DiscussPost data;
//這個方法要在類初始化之前執行的,只執行一次,所以是靜態的
@BeforeClass
public static void beforeClass() {
System.out.println("beforeClass");
}
//只在類銷燬的時候執行一次方法執行之後啟用
@AfterClass
public static void afterClass() {
System.out.println("afterClass");
}
//每次掉方法都執行,所以不能是靜態的
@Before
public void before() {
System.out.println("before");
// 初始化測試資料
data = new DiscussPost();
data.setUserId(111);
data.setTitle("Test Title");
data.setContent("Test Content");
data.setCreateTime(new Date());
discussPostService.addDiscussPost(data);
}
@After
public void after() {
System.out.println("after");
// 刪除測試資料
discussPostService.updateStatus(data.getId(), 2);
}
@Test
public void test1() {