静的初期化ブロックを追加して、コードベースで広く使用されている基本クラスに変更を加えました。私は今、これはいくつかのケースで働いているPowerMock @SuppressStaticInitializationForはテストクラス内のネストされたクラスでは機能しません
@SuppressStaticInitializationFor("com.mycompany.WidelyUsedBaseClass")
を追加することによって、それらを動作させるためにしようと、私たちのユニットテストのすべてをつもりですが、私はそれが内部クラスを持ってテストクラスを動作させることはできませんWidelyUsedBaseClass
を拡張します。 (なぜこれらのネストされたクラスが存在するのか尋ねないでください、なぜ標準的なモックでは不十分なのか分かりませんが、とにかく、私はテストロジックを理解しているとは確信していないので、これらの内部クラスを使用して)
は、ここで私が何を意味するかの例を示します。
@RunWith(PowerMockRunner.class)
@SuppressStaticInitializationFor("com.mycompany.WidelyUsedBaseClass") // <-- This isn't working! I can still see <clinit> in the exception when the test fails...
public class SomeTestsFromAnotherTeam
{
// test logic...
// more test logic...
Stub myStub = new Stub();
// more test logic...
private class Stub extends WidelyUsedBaseClass
{
// some other logic...
}
}
は、私はこの問題はnew Stub()
コールで発生していると思います。