TDD之單元測試入門--Junit4的使用?

TDD(Test Driver Develop)在業界推廣時,因難練易破,一直沒有被普及。

但沒有測試用例的用例,程式猿在釋出程式時,也是心裡沒有底。總之,測試要有的,但做到哪些需要做,做到哪種程度,是需要根據自身情況進行推敲了

本文分享一個入門篇,使用Junit4進行測試

工具/原料

junit4

IntelliJ IDEA

方法/步驟

需要的Jar:junit-4.11.jar

IntelliJ IDEA其它已經帶有,但版本可能與自己預期不符。建設放一個在classpath中。

TDD之單元測試入門--Junit4的使用

需要測試的程式碼。

既然是入門,也不搞太簡單的demo程式,直接測一個有用的api吧。

org.apache.commons.lang.StringUtils.isBlank(String str);

Code:

public static boolean isBlank(String str) {

int strLen;

if(str != null && (strLen = str.length()) != 0) {

for(int i = 0; i < strLen; ++i) {

if(!Character.isWhitespace(str.charAt(i))) {

return false;

}

}

return true;

} else {

return true;

}

}

TDD之單元測試入門--Junit4的使用

null的場景:

Code:

package tdd;

import org.apache.commons.lang.StringUtils;

import org.junit.Test;

import static org.hamcrest.CoreMatchers.is;

import static org.junit.Assert.assertThat;

/**

* Created by MyWorld on 2016/3/18.

*/

public class StringUtilsTest {

@Test

public void testIsBlankWhen_null_is_given_then_return_true() {

boolean isTrue = StringUtils.isBlank(null);

assertThat(isTrue, is(true));

}

}

這是入門篇嘛。

簡單解釋下程式碼:

@Test//這是一個註解,用來標註,這個方法是個測試用例。

assertThat(isTrue, is(true));//使用的好處就是可以把進行比較的資訊都打印出來,過會可以示例一下

TDD之單元測試入門--Junit4的使用

走一個。

在方法名上點選右鍵,在彈出的選單上選 Run 'testIsBlankWhen_nu..()'

TDD之單元測試入門--Junit4的使用

看看執行結果。

過了。

看看到傳說的綠條了吧

TDD中是先紅後綠

TDD之單元測試入門--Junit4的使用

再來一個失敗的場景。順便呈現下assertThat的優勢

Code:

@Test

public void testIsBlankWhen_demo_is_given_then_return_true() {

boolean isTrue = StringUtils.isBlank("demo");

assertThat(isTrue, is(true));

}

TDD之單元測試入門--Junit4的使用

執行結果。當然是不過了

java.lang.AssertionError:

Expected: is

but: was

//就點一下。後彈出一個對話方塊

TDD之單元測試入門--Junit4的使用

TDD之單元測試入門--Junit4的使用

已經紅了。改下,讓測試用例跑過吧。

偷下懶。直接加個!吧

Code:

@Test

public void testIsBlankWhen_demo_is_given_then_return_false() {

boolean isTrue = !StringUtils.isBlank("demo");

assertThat(isTrue, is(true));

}

TDD之單元測試入門--Junit4的使用

相關問題答案