您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Java用JUnit進行單元測試
作者:柴澤建_Jack 發(fā)布時間:[ 2017/3/30 11:24:01 ] 推薦標簽:單元測試 Junit JAVA

  單元測試應該是開發(fā)人員必備的技能,但又是開發(fā)人員容易忽略的內(nèi)容。我是一個Android Coder,接下來從零開始學習使用JUnit進行單元測試。
  1、原始的寫法
  1.1、準備

  創(chuàng)建一個文件夾作為工作文件夾。
  1.2、下載
  這里我們需要下載兩個東西:
  junit.jar
  hamcrest-core.jar
  我這里下載了4.12版本的JUnit和1.3版本的hamcrest。下載完成之后,拷貝到工作文件夾。
  1.3、編寫Java類
  在工作文件夾創(chuàng)建編寫Java類。
  import java.lang.String;
  import java.lang.Integer;
  public class Calculate{
  public int evaluate(String expression) {
  int sum = 0;
  for (String summand: expression.split("\+"))
  sum += Integer.valueOf(summand);
  return sum;
  }
  }
  然后通過Java命令行編譯該類:
  javac Calculate.java
  1.4、編寫測試類
  在工作文件夾創(chuàng)建編寫測試類
  import static org.junit.Assert.assertEquals;
  import org.junit.Test;
  public class CalculateTest {
  @Test
  public void evaluatesExpression() {
  Calculate calculate = new Calculate();
  int sum = calculate.evaluate("1+2+3");
  assertEquals(6, sum);
  }
  }
  然后使用命令行編譯該類:
  javac -cp .:junit-4.12.jar CalculateTest.java
  1.5、運行測試
  使用命令行:
  java -cp .:junit-4.12.jar:hamcrest-core-1.3.jar org.junit.runner.JUnitCore CalculateTest
  結(jié)果:
  JUnit version 4.12
  .
  Time: 0.004
  OK (1 test)
  1.6、測試失敗的情況
  更改Java類為:
  import java.lang.String;
  import java.lang.Integer;
  public class Calculate{
  public int evaluate(String expression) {
  int sum = 0;
  for (String summand: expression.split("\+"))
  sum -= Integer.valueOf(summand); //這里改為-
  return sum;
  }
  }
  重新編譯,運行測試。結(jié)果:
  JUnit version 4.12
  .E
  Time: 0.009
  There was 1 failure:
  1) evaluatesExpression(CalculateTest)
  java.lang.AssertionError: expected:<6> but was:<-6>
  at org.junit.Assert.fail(Assert.java:88)
  at org.junit.Assert.failNotEquals(Assert.java:834)
  ……
  FAILURES!!!
  Tests run: 1,  Failures: 1
  基礎(chǔ)的用法完成Java的單元測試。我們進行單元測試肯定不會這么麻煩。但是要知道,我們使用任何框架或者編輯器,他們在背后做的事情大概也是這些。那接下來,仍然手工來做一個使用Gradle構(gòu)建的Java工程的測試寫法。
  2、對使用Gradle構(gòu)建的Java項目進行單元測試
  2.1、使用Gradle構(gòu)建Java工程

  估計,即使是使用過Gradle構(gòu)建的人,也很少有人手動使用grad
  2.1.1、準備
  仍然是創(chuàng)建一個文件夾作為我們的工程文件夾。
  2.1.2、創(chuàng)建build.gradle文件
  在這個文件夾下面創(chuàng)建一個build.gradle文件,內(nèi)容:
  apply plugin: 'java'
  2.1.3、創(chuàng)建Java工程結(jié)構(gòu)并編寫代碼
  然后在工程文件夾下創(chuàng)建Java工程結(jié)構(gòu),并在src/main/java下創(chuàng)建一個文件,Calculator文件。PS:我創(chuàng)建的工程文件夾叫Gradle。

  Calculator.java
  import java.lang.String;
  public class Calculator{
  public int add(int a, int b){
  return a + b ;
  }
  public static void main(String[] args) {
  Calculator calculator = new Calculator() ;
  int result = calculator.add(1,2) ;
  System.out.println(String.valueOf(result));
  }
  }
  2.1.4、使用gradle構(gòu)建工程
  在工程文件夾下使用命令行g(shù)radle build構(gòu)建工程。
  gradle build

  然后查看工程文件夾:

  我們可以看到多出了build文件夾,這個是使用gradle構(gòu)建出的內(nèi)容。我們可以看到有class和jar文件。那么我們?nèi)ミ\行一下試一試。

  我們看到,輸出3,正是我們程序預期的結(jié)果。OK這樣我們使用gradle構(gòu)建好了一個基礎(chǔ)的Java工程了。接下來為我們的工程添加測試文件。
  2.2、使用JUnit進行單元測試
  2.2.1 添加依賴

  首先我們需要在build.gradle中添加依賴,那么更改之后的build.gradle文件如下。
  apply plugin: 'java'
  repositories {
  mavenCentral()
  }
  dependencies {
  testCompile 'junit:junit:4.12'
  }
  2.2.2、添加單元測試代碼
  在src/test/java中創(chuàng)建CalculatorTest.java文件:
  內(nèi)容如下:
  import static org.junit.Assert.assertEquals;
  import org.junit.Test;
  public class CalculatorTest {
  @Test
  public void evaluatesExpression() {
  Calculator calculate = new Calculator();
  int sum = calculate.add(1,2);
  assertEquals(3, sum);
  }
  }

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd