ユニットテスト-voidメソッドのテスト方法
5847 ワード
voidメソッドのユニットテストを行うと、テスト担当者は迷ってしまいます(多くの人がvoidメソッドにどのようにテストするかを聞いています)、voidのメソッドは値を返さないメソッドです.では、その結果はどうなるのでしょうか.
ここではvoidをどのようにテストすべきかについてお話しします.
まずテストの角度に立ってvoidの方法を分析して、すべての方法の設計はすべて特定の機能があって、以下にいくつかvoidの方法ができることを列挙します(すべてではありませんて、特徴だけを体現します)
1、メソッド内でプライベートなオブジェクトインスタンスを属性設定する
2、ログ出力した
3、別のインスタンスメソッドを呼び出す
4、タイプ変数の初期化(プライベートまたはグローバル)
5、..............
以上のようにvoidメソッドを分析するのは独立して存在するのではなく、その仕事は必ずある場所に反映され、あるクラス、あるファイル、あるサービスかもしれません.のなど
次にvoidの仕事の反映や影響を分析し、彼を見つけた後、このクラス、このファイル、このサービスを得る方法を見つけます.....
次は一般的な例によれば
void addServiceをテストします(.)この方法は,まずその影響または作用を解析し,servicesという変数に影響し,この変数はプライベートである.この方法の正しさをテストするには,servicesという変数オブジェクトの正しさを検証する必要がある.
このプライベート変数を取得するにはどうすればいいですか?私たちはmock法で作ります.
上記の例では,検証対象を状況に応じて取得する方法が異なり,実際の状況に応じて考慮する簡単なvoidテスト方法を示した.
またPowerMockではorg.powermock.reflect.Whiteboxクラスは、パッケージを迂回するいくつかの方法を提供します.勉強できる...
ここではvoidをどのようにテストすべきかについてお話しします.
まずテストの角度に立ってvoidの方法を分析して、すべての方法の設計はすべて特定の機能があって、以下にいくつかvoidの方法ができることを列挙します(すべてではありませんて、特徴だけを体現します)
1、メソッド内でプライベートなオブジェクトインスタンスを属性設定する
2、ログ出力した
3、別のインスタンスメソッドを呼び出す
4、タイプ変数の初期化(プライベートまたはグローバル)
5、..............
以上のようにvoidメソッドを分析するのは独立して存在するのではなく、その仕事は必ずある場所に反映され、あるクラス、あるファイル、あるサービスかもしれません.のなど
次にvoidの仕事の反映や影響を分析し、彼を見つけた後、このクラス、このファイル、このサービスを得る方法を見つけます.....
次は一般的な例によれば
public class ServiceHolder {
private final Set
void addServiceをテストします(.)この方法は,まずその影響または作用を解析し,servicesという変数に影響し,この変数はプライベートである.この方法の正しさをテストするには,servicesという変数オブジェクトの正しさを検証する必要がある.
このプライベート変数を取得するにはどうすればいいですか?私たちはmock法で作ります.
@Test
public void testAddService() throws Exception {
ServiceHolder tested = new ServiceHolder();
final Object service = new Object();
tested.addService(service);
//
Set<String> services = Whitebox.getInternalState(tested,"services");
assertEquals("Size of the \"services\" Set should be 1", 1, services.size());
assertSame("The services Set should didn't contain the expect service",
service, services.iterator().next());
}
Whitebox.getInternalState(tested,"services"); powermocker 。
上記の例では,検証対象を状況に応じて取得する方法が異なり,実際の状況に応じて考慮する簡単なvoidテスト方法を示した.
またPowerMockではorg.powermock.reflect.Whiteboxクラスは、パッケージを迂回するいくつかの方法を提供します.勉強できる...