junitのいくつかの注釈
3205 ワード
符号化の過程で、ユニットテストが必要で、テスト例を書くとjunitが役に立ちます.私は今、テスト方法をテストの例としています.
初期junit 3ではjunitを継承する必要がある.framework.TestCaseでは、テストのメソッド名はtestで始まる必要があり、setup、tearDownメソッド名も固定されているなど、多くの制限があります.setuup、tearDownの用途は、複数のテスト方法にデータを統一的に準備し、現場を整理し、重複作業を減らすことであり、テスト用語ではテスト治具と呼ばれています.完全なテスト例:setupを実行してから、テスト方法を実行し、tearDownを実行します.各テスト例の間には順序がありません.
現在のjunit 4では、junitを継承する必要がなく、いくつかの注釈が拡張されています.framework.TestCase:
1,@BeforeClass:public static voidメソッドに配置され、このメソッドは最初に実行され、1回のみ実行されます.静的プロファイル、環境設定などをロードできます.
2,@AfterClass:public static voidメソッドに配置され、このメソッドは最後に実行され、1回のみ実行されます.データ、環境などのクリーンアップに使用できます.場合によっては、環境の設定とクリーンアップを一度だけ行う必要があります.@BeforeClass、@AfterClassを使用することも考えられますが、@Before、@Afterに比べて効率が向上します.
3,@Before:public voidメソッドに配置し,各テストメソッドが実行される前に実行する.一般的な用途は試験方法のために試験データを準備する.
4,@After:public voidメソッド上に配置し,各テストメソッドの実行後に実行する.一般的な用途は、次のテスト方法の実行に干渉しないように、現場を整理することです.
5,@Test:public voidメソッドに置く.これはテストを実行するメソッドであり、テスト主体である.
6,@Ignore:この試験方法は実行しないことを無視して試験方法に置くことができる.テストクラスに置くこともできます.テストクラス全体のすべてのテスト方法は無視され、実行されません.
7、@FixMethodOrder:テストクラスに配置します.場合によっては、テスト方法を一定の順序で実行する必要がある場合は、彼を加えることができます.一般に,試験方法間は互いに独立しており,実行順序の要求はない.
8,@Parameters:public staticメソッドに配置し、テストデータのセットを返します.この注記はパラメトリックテストで使用し,@RunWith(Parameterized.class)と併用した.詳細はjunit 4テストパラメータ化を参照
9、@SuiteClasses:テストクラスに置く.ここでのテストクラスは、他の複数のテストクラスを組み合わせて実行するために使用されます.例えば、現在10のテストクラスがあり、そのうちの3つのテストクラスを実行したい場合、この注釈は私たちの要求を満たすことができます.@RunWith(Suite.class)と合わせて使用します.
10、@Category:試験方法または試験試験クラスに置いて、@RunWith(Categories.class)、@SuiteClassと合わせて使用する.CategoriesもSuiteです.注記@SuiteClassesと似ていますが、@Categoryはより細粒度の制御の組み合わせが可能で、試験方法で組み合わせることができます.例えば、A試験クラスには5つの試験方法があり、B試験クラスには3つの試験方法があり、@CategoryはAの2つの方法、Bの1つの方法を組み合わせることができます.
11、@RunWith:テストクラスに配置します.一般的にjunitのいくつかの強化機能を使用するには、組み合わせテスト@RunWith(Suite.class)、パラメトリックテスト@RunWith(Parameterized.class)、統合springテスト@RunWith(SpringJUnit 4 ClassRunner.class)などが必要です.
12,@Rule:ルール注記をpublic属性に置き、orgを直接または間接的に実現する.junit.rules.TestRuleでは、orgなどのルールを柔軟に定義できます.junit.rules.ExpectedExceptionは、例外テストに使用できます.詳細はjunit 4テスト異常を参照
注釈を付けた方法名は、他の合法的な方法名を任意に書くことができますが、意味を表して、読みやすくしたほうがいいです.
出力:
初期junit 3ではjunitを継承する必要がある.framework.TestCaseでは、テストのメソッド名はtestで始まる必要があり、setup、tearDownメソッド名も固定されているなど、多くの制限があります.setuup、tearDownの用途は、複数のテスト方法にデータを統一的に準備し、現場を整理し、重複作業を減らすことであり、テスト用語ではテスト治具と呼ばれています.完全なテスト例:setupを実行してから、テスト方法を実行し、tearDownを実行します.各テスト例の間には順序がありません.
現在のjunit 4では、junitを継承する必要がなく、いくつかの注釈が拡張されています.framework.TestCase:
1,@BeforeClass:public static voidメソッドに配置され、このメソッドは最初に実行され、1回のみ実行されます.静的プロファイル、環境設定などをロードできます.
2,@AfterClass:public static voidメソッドに配置され、このメソッドは最後に実行され、1回のみ実行されます.データ、環境などのクリーンアップに使用できます.場合によっては、環境の設定とクリーンアップを一度だけ行う必要があります.@BeforeClass、@AfterClassを使用することも考えられますが、@Before、@Afterに比べて効率が向上します.
3,@Before:public voidメソッドに配置し,各テストメソッドが実行される前に実行する.一般的な用途は試験方法のために試験データを準備する.
4,@After:public voidメソッド上に配置し,各テストメソッドの実行後に実行する.一般的な用途は、次のテスト方法の実行に干渉しないように、現場を整理することです.
5,@Test:public voidメソッドに置く.これはテストを実行するメソッドであり、テスト主体である.
6,@Ignore:この試験方法は実行しないことを無視して試験方法に置くことができる.テストクラスに置くこともできます.テストクラス全体のすべてのテスト方法は無視され、実行されません.
7、@FixMethodOrder:テストクラスに配置します.場合によっては、テスト方法を一定の順序で実行する必要がある場合は、彼を加えることができます.一般に,試験方法間は互いに独立しており,実行順序の要求はない.
8,@Parameters:public staticメソッドに配置し、テストデータのセットを返します.この注記はパラメトリックテストで使用し,@RunWith(Parameterized.class)と併用した.詳細はjunit 4テストパラメータ化を参照
9、@SuiteClasses:テストクラスに置く.ここでのテストクラスは、他の複数のテストクラスを組み合わせて実行するために使用されます.例えば、現在10のテストクラスがあり、そのうちの3つのテストクラスを実行したい場合、この注釈は私たちの要求を満たすことができます.@RunWith(Suite.class)と合わせて使用します.
10、@Category:試験方法または試験試験クラスに置いて、@RunWith(Categories.class)、@SuiteClassと合わせて使用する.CategoriesもSuiteです.注記@SuiteClassesと似ていますが、@Categoryはより細粒度の制御の組み合わせが可能で、試験方法で組み合わせることができます.例えば、A試験クラスには5つの試験方法があり、B試験クラスには3つの試験方法があり、@CategoryはAの2つの方法、Bの1つの方法を組み合わせることができます.
11、@RunWith:テストクラスに配置します.一般的にjunitのいくつかの強化機能を使用するには、組み合わせテスト@RunWith(Suite.class)、パラメトリックテスト@RunWith(Parameterized.class)、統合springテスト@RunWith(SpringJUnit 4 ClassRunner.class)などが必要です.
12,@Rule:ルール注記をpublic属性に置き、orgを直接または間接的に実現する.junit.rules.TestRuleでは、orgなどのルールを柔軟に定義できます.junit.rules.ExpectedExceptionは、例外テストに使用できます.詳細はjunit 4テスト異常を参照
注釈を付けた方法名は、他の合法的な方法名を任意に書くことができますが、意味を表して、読みやすくしたほうがいいです.
package cn.wonhigh.o2o.test;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runners.MethodSorters;
//
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class Junit4Test {
//
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println(" ");
}
//
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println(" ");
}
//
@Before
public void setUp() throws Exception {
System.out.println(" ");
}
//
@After
public void tearDown() throws Exception {
System.out.println(" ");
}
//
@Test
public void method1() {
System.out.println(" 1");
}
//
@Test
public void method2() {
System.out.println(" 2");
}
// ,
@Ignore
@Test
public void method3() {
System.out.println(" 3");
}
}
出力:
1
2