軟件開發——軟技能(五、單元測試)

五、單元測試

   通過單元測試在保證代碼質量方面非常有幫助。在Java方面,JUnit成爲了Java單元測試事實上的標準。

   開發中發現的問題:

   1.不知道何爲單元測試

   2.寫main方法做方法測試

   3.測試用例寫的不完善,邊界條件不夠充分


   Java單元測試的寫法:

   1.工具類方法:一般採用靜態化的方法,採用斷言去測試執行結果。

   2.業務類方法(Spring中的Bean中的方法):通過BeforeClass方法先加載Spring的context文件,初始化Bean容器,然後在相應的單元測試類中設置一個該Bean的屬性,在Before方法中設置該Bean屬性的實例。然後寫對應的測試方法測試Bean中相應的方法。同時也可以測試方法拋出的異常。

   3.控制層方法:相對複雜。控制層框架如Spring MVC(參考一參考二)、Struts2(參考)、RESTful(參考一參考二)等,都可以採用JUnit寫相應的測試用例,進行自動化測試。


   JUnit的常用用法;

   註解(詳細請查閱相關文檔,官方文檔最全):

   @BeforeClass:必須爲靜態方法,在所有測試方法之前執行,包括@Before方法,只執行一次。

   @AfterClass:必須爲靜態方法,在所有測試方法之後執行,包括@After方法,只執行一次。

   @Before:每個測試方法執行之前執行一次。

   @After:每個測試方法執行之後執行一次。

   @Test:測試方法,也可以測試拋出的異常和超時時間。

   @Ignore:被忽略的測試方法。


   斷言(詳細請參考這裏):

   Assert.assertArrayEquals:數組相等。

   Assert.assertEquals:兩個對象相等。

   Assert.assertFalse:結果爲false。

   Assert.assertNotNull:不爲null。

   Assert.assertNotSame:不一樣。

   Assert.assertNull:爲null。

   Assert.assertSame:一樣。

   Assert.assertThat:通用斷言方法,靈活性更高,斷言的內容更多。

   Assert.assertTrue:結果爲true。

   誠然,要寫好測試用例,可能需要用到的不只是上面所羅列的內容。能夠將上述內容靈活運用到測試用例中,就能寫出很不錯的Java測試用例。在保證代碼質量方面非常有效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章