2

私の単体テストでは、次のことを試しました。

import org.jmock.Mockery;
import org.jmock.Expectations;
import org.jmock.lib.legacy.ClassImposteriser; 

public class MyActivityTest extends ActivityUnitTestCase<MyActivity> {
    private Mockery context = new Mockery() {{
        setImposteriser(ClassImposteriser.INSTANCE);
    }};

    ...
}

私の使用目的は、プロジェクトのApplicationサブクラスをモックすることです。ただし、テストを実行すると、java.lang.ExceptionInInitializerErrorが発生します。Androidの単体テストを実行するためにClassImposteriser拡張機能を使用できませんか?

4

1 に答える 1

3

これは私が数ヶ月前に広範囲に調べたものです。残念ながら、dalvik VMは現在、具象クラスをモックするために必要なバイトコード操作をサポートしていません。

したがって、モックライブラリを使用してクラスをモックすることはできません。Androidテストでモックするクラスごとにインターフェースを抽出し、代わりにインターフェースをモックする必要があります。

davlikの制限についてさらに読む:

于 2011-07-24T06:47:44.773 に答える