由於項目的須要,因此研究了一下自動生成測試代碼。將經驗記錄下來,總會有用的。我我的認爲,好記性不如多作筆記多反思總結。數據庫
1 <dependency> 2 <groupId>junit</groupId> 3 <artifactId>junit</artifactId> 4 <version>4.12</version> 5 </dependency>
打開Settings窗口搜索junit,如圖(兩個插件都勾選添加):微信
JUnitGenerator V2.0插件,能夠幫助咱們自動生成測試代碼。若是搜索junit沒有JUnitGenerator V2.0時,以下圖操做(下載添加):ide
調用模板的方法(Alt+Insert)默認測試全部全部方法。若想要動態個性化生成,能夠在所要測試的類頁面上,使用該快捷操做Ctrl + Shift + T,以下圖個性化設置:函數
如今能夠經過右鍵菜單在這個類上運行'***測試類名**'來進行測試,或經過Run → Edit Configurations來進行。單元測試
JUnit爲咱們提供了一些輔助函數,他們用來幫助咱們肯定被測試的方法是否按照預期的效果正常工做,一般,把這些輔助函數稱爲斷言。測試
斷言核心方法this
註解spa
一個測試類單元測試的執行順序爲:.net
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass插件
每個測試方法的調用順序爲:
@Before –> @Test –> @After
代碼示例:
1 public class JunitFlowTest { 2 /* * 3 *1. @BeforeClass修飾的方法會在全部方法被調用前被執行, 4 * 並且該方法是靜態的,因此當測試類被加載後接着就會運行它, 5 * 並且在內存中它只會存在一份實例,它比較適合加載配置文件。 6 * 2. @AfterClass所修飾的方法一般用來對資源的清理,如關閉數據庫的鏈接 7 * 3. @Before和@After會在每一個測試方法的先後各執行一次。 8 * */ 9 @BeforeClass 10 public static void setUpBeforeClass() throws Exception { 11 System.out.println("this is beforeClass..."); 12 } 13 @AfterClass 14 public static void tearDownAfterClass() throws Exception { 15 System.out.println("this is afterClass..."); 16 } 17 @Before 18 public void setUp() throws Exception { 19 System.out.println("this is before..."); 20 } 21 22 /** 23 * 即便在@Before註解方法、@Test註解方法中拋出了異常, 24 * 全部的@After註解方法依然會被執行 25 */ 26 @After 27 public void tearDown() throws Exception { 28 System.out.println("this is after"); 29 } 30 31 /* * 32 * 33 * 1. Failure通常由單元測試使用的斷言方法判斷失敗所引發的, 34 * 這經表示測試點發現了問題 35 * ,就是說程序輸出的結果和咱們預期的不同。 36 * 2. error是由代碼異常引發的,它能夠產生於測試代碼自己的錯誤, 37 * 也能夠是被測試代碼中的 38 * 一個隱藏的bug 39 * 3.測試用例不是用來證實你是對的,而是用來證實你沒有錯。 40 */ 41 @Test 42 public void testAdd() { 43 assertEquals(5, new Calculate().add(3,3)); 44 } 45 @Test 46 public void testDivide() { 47 assertEquals(3, new Calculate().divide(6, 0)); 48 } 49 50 }
<!-- Start -->
獲知及時信息,請關注個人我的微信訂閱號:0與1的那點事
<!-- End -->