junit 4.8.2簡単な入門
3688 ワード
概要junit紹介JUnitはErich GammaとKent Beckによって作成された回帰テストフレームワークである.Junitテストはプログラマーテスト、いわゆるホワイトボックステストです.プログラマーはテストされたソフトウェアがどのように機能を完成し、どのような機能を完成するかを知っているからです.Junitは一連のフレームワークで、TestCaseクラスを継承すれば、Junitで自動テストを行うことができます.junitプロパティJUnitは、重複可能なテストを記述および実行するためのオープンソースのJavaテストフレームワークです.彼はユニットテストフレームワークシステムxUnitの一例(java言語用)である.これには、1、所望の結果をテストするためのアサーション2、共通のテストデータを共有するためのテストツール3、テストを容易に組織および実行するためのテストキット4、グラフィックおよびテキストのテストランナjunitの利点、さらにjunitはxpプログラミングおよび再構築(refactor)において極力推奨されるツールである.自動ユニットテストを実現する場合に開発の効率を大幅に向上させることができるため、実際にテストコードを書くにも多くの時間と労力がかかるが、このメリットを使うのはいったいどこにあるのだろうか.筆者はこう思っている:通俗解釈1.所望の結果に基づいて試験を行う.mainのように1つだけ実行できるのではなく、複数のメソッドが一緒に実行されます.直感的な運転結果4.仕様のテストコード2最初のjunit 4プログラム1)パッケージjunit-4.8.2を導入する.jar hamcrest-all-1.2.JAr 2)コードJUnit 4 HelloWorld
直接実行クラスJAvaは結果を見ることができます.
3)assertThat hamcrestのマッチング手法を用いて,より自然にa)assertThat(n,allOf(greaterThan(1),lessThan(15)));assertThat( n, anyOf( greaterThan(16), lessThan(8) ) ); assertThat( n, anything() ); assertThat( str, is( "bjsxt") ); assertThat( str, not( "bjxxt") ); b) assertThat( str, containsString( "bjsxt") ); assertThat( str, endsWith("bjsxt") ); assertThat( str, startsWith( "bjsxt") ); assertThat( n, equalTo( nExpected ) ); assertThat( str, equalToIgnoringCase( "bjsxt") ); assertThat( str, equalToIgnoringWhiteSpace( "bjsxt") ); c) assertThat( d, closeTo( 3.0, 0.3 ) ); assertThat( d, greaterThan(3.0) ); assertThat( d, lessThan (10.0) ); assertThat( d, greaterThanOrEqualTo (5.0) ); assertThat( d, lessThanOrEqualTo (16.0) ); d) assertThat( map, hasEntry( "bjsxt", "bjsxt") ); assertThat( iterable, hasItem ( "bjsxt") ); assertThat( map, hasKey ( "bjsxt") ); assertThat( map, hasValue ( "bjsxt") ); 4)FailureとError 1.Failureとは、テストに失敗したことを意味します.Errorとは、テストプログラム自体のエラー5)JUnit 4 Annotation 1.@Test:試験方法a)(expected=XXXException.class)b)(timeout=xxx)2.@Ignore:無視された試験方法3.@Before:各テストメソッドの前に4を実行します.After:各試験方法の後に5.BeforeClass:すべてのテストが開始される前に6.AfterClass:すべてのテストが終了してから実行6)複数のテストを実行7)注意1.例:a)クラスをtestパッケージに入れるb)クラス名をXXXTest末尾c)メソッドでtestMethodで命名8)その他のフレームワークTestNG junitダウンロード
直接実行クラスJAvaは結果を見ることができます.
package com.huaxin.phl;
public class Arithmetic {
public int add(int a, int b) {
return a + b;
}
public String getString() {
return "my name is phl!!!";
}
}
package com.huaxin.test;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import com.huaxin.phl.Arithmetic;
public class ArithmeticTest {
@BeforeClass
public static void beforeClass(){
System.out.println("junit4.8.2 is begin!");
}
@AfterClass
public static void afterClass(){
System.out.println("junit4.8.2 is end!");
}
@Ignore
public void testIgnore(){
System.out.println("testIgnore!");
}
@Test
public void testAdd() {
System.out.println("testAdd!!");
assertThat(new Arithmetic().add(4, 3), is(7));
}
@Test
public void testLength() {
System.out.println("testLength!!");
assertThat(new Arithmetic().getString(),containsString("phl"));
}
}
3)assertThat hamcrestのマッチング手法を用いて,より自然にa)assertThat(n,allOf(greaterThan(1),lessThan(15)));assertThat( n, anyOf( greaterThan(16), lessThan(8) ) ); assertThat( n, anything() ); assertThat( str, is( "bjsxt") ); assertThat( str, not( "bjxxt") ); b) assertThat( str, containsString( "bjsxt") ); assertThat( str, endsWith("bjsxt") ); assertThat( str, startsWith( "bjsxt") ); assertThat( n, equalTo( nExpected ) ); assertThat( str, equalToIgnoringCase( "bjsxt") ); assertThat( str, equalToIgnoringWhiteSpace( "bjsxt") ); c) assertThat( d, closeTo( 3.0, 0.3 ) ); assertThat( d, greaterThan(3.0) ); assertThat( d, lessThan (10.0) ); assertThat( d, greaterThanOrEqualTo (5.0) ); assertThat( d, lessThanOrEqualTo (16.0) ); d) assertThat( map, hasEntry( "bjsxt", "bjsxt") ); assertThat( iterable, hasItem ( "bjsxt") ); assertThat( map, hasKey ( "bjsxt") ); assertThat( map, hasValue ( "bjsxt") ); 4)FailureとError 1.Failureとは、テストに失敗したことを意味します.Errorとは、テストプログラム自体のエラー5)JUnit 4 Annotation 1.@Test:試験方法a)(expected=XXXException.class)b)(timeout=xxx)2.@Ignore:無視された試験方法3.@Before:各テストメソッドの前に4を実行します.After:各試験方法の後に5.BeforeClass:すべてのテストが開始される前に6.AfterClass:すべてのテストが終了してから実行6)複数のテストを実行7)注意1.例:a)クラスをtestパッケージに入れるb)クラス名をXXXTest末尾c)メソッドでtestMethodで命名8)その他のフレームワークTestNG junitダウンロード