
Java Tutorial 第五堂(2)JUnit 與 Gradle
Java Tutorial 第五堂(1)使用 spring-orm 整合 Hibernate << 前情 在先前一連串的練習中,我們作了數次的重構(Refactoring),每次重構時是不是會有些怕怕的,如果不小心改爛了怎麼辦?每次重構完總得執行整個應用程式,看看功能是不是正確?只不過,對這種測試方式終究有些不安,對吧!? 你應該為撰寫的程式加入一些專門用的測試程式,在測試中最基本的單位是單元測試(Unit test),指的是測試一個工作單元(a unit of work)的行為。舉例來說,對於建築橋墩而言,一個螺絲釘、一根鋼筋、一條鋼索甚至一公斤的水泥等,都可謂是一個工作單元,驗證這些工作單元行為或功能 (硬度、張力等)是否符合預期,方可確保最後橋墩安全無虞。 在 Java 的世界談到單元測試,基本上都得認識一下 JUnit 這個元老級的單元測試框架,IDE 多半都有整合這個框架。在這邊先介紹一下如何在 Gradle 中結合 JUnit 作一個簡單的測試。 練習 15:在 Gradle 中使用 JUnit 首先,你必須在 build.gradle 中增加 apply plugin: 'java' 我們要使用 JUnit 4 來撰寫單元測試,因此要在 dependencies { testCompile 'junit:junit:4.+' 略 ... } 從之前的練習中已經知道,Gradle 中 Java 程式碼,必須定義在 src/main/java 之中,並依套件設定在對應的目錄放置 .java 程式碼,這邊先撰寫一個簡單的 package tw.codedata; public class Hello { public String sayHelloTo(String name) { return String.format("Hello, %s!", name); } } 如果你傳給 不是的!使用 JUnit 的話,可以自動運行測試並收集測試結果,你可以如下定義一個測試案例(Test case): package tw.codedata; import static org.junit.Assert.*; import org.junit.*; public class HelloTest { @Test public void sayHelloTo() { Hello hello = new Hello(); assertEquals("Hello, CodeData!", hello.sayHelloTo("CodeData")); } } 對於一個 那麼 HelloTest.java 要放在哪呢?必須放在 src/test/java 中,並依套件設定在對應的目錄放置 .java 程式碼。 目前原始碼的位置對應是:
接著要運行測試,可以執行 在 build/reports/tests 中,也會產生一份 HTML 報表: 要是測試失敗的話,會有類似以下的畫面: 測試失敗時報表的呈現方式是 … |