2017-06-29 120 views
-1

クラス内のすべてのテストに@PrepareForTest注釈を使用する方法はありますか? @PrepareForTest(PortalUtil.class)をsetUpメソッドとして記述しているにもかかわらず、PortalUtil.classを使用するすべてのテストメソッドでこれをもう一度記述する必要があります。@PrepareForTestアノテーションの問題

答えて

0

テストクラスの上部にアノテーションを置くことができます。 Javadocから

@PrepareForTest(PortalUtil.class) 
public class MyTest { 
    .... 
} 

この注釈は、テストクラスと個々の試験方法の両方に配置することができます。クラスに配置されている場合、このテストクラスのすべてのテストメソッドはPowerMockによって処理されます(テスト可能にするため)。単一のメソッドに対してこの動作をオーバーライドするには、@PrepareForTestアノテーションを特定のテストメソッドに配置するだけです。これは、例えばテストメソッドAではクラスXを変更したいが、テストメソッドBではXをそのままにしたい場合に便利です。このような状況では、メソッドBに@PrepareForTestを置き、クラスXをvalue()リストから除外します。

https://static.javadoc.io/org.powermock/powermock-core/1.6.5/org/powermock/core/classloader/annotations/PrepareForTest.html

+0

事がある - 動作しないこと。他の方法で別途に書き込む必要があります –

+0

「別々に書き込む」ということを理解できません。この注釈をクラスの先頭に追加するだけで、注釈を各テストに配置する必要がなくなります。各テスト内で、 'PortalUtil'の使用方法を変更することができます。 –

+1

@ŁukaszBocheńskiそれがうまくいかず、ドキュメントがうまくいくとすれば、次にベストな次のステップは小さな例を貼り付けることです。さもなければ、私たちはあなたのために働くものは何もわからず、ドキュメントやベストプラクティスに従って働くためには何が必要なのか分かりません。 –

関連する問題