4

プロジェクトのJUnitテストケースを作成するためにEclipseを使用しています。私のプロジェクトには、AIDLに基づくバインドされたサービスが含まれています。プロジェクトを実行した後、genフォルダーにAIDL用の自動生成されたJavaファイルを取得します。

このファイルには、次のようなメソッドを持つStubクラスが含まれています

    public android.os.IBinder asBinder()
    public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException

およびメソッドを持つProxyクラス

public android.os.IBinder asBinder()
public java.lang.String getInterfaceDescriptor()

また、私が作成したいくつかのメソッド。JUintTestを使用して上記のメソッドをテストしたいと思います。ServiceTestCaseを使用してこれらのメソッドをテストすることは可能 ですか、それとも他の方法を使用してこれをテストできますか?

4

1 に答える 1

4

testProject で次のコードを使用して、スタブ クラスのメソッドをテストすることができました。

IBinder service = this.bindService(new Intent(MyService.class.getName()));
        MyFile iTestServiceCall = MyFile.Stub.asInterface(service);
        b=service.transact(0, data, null, 0);
        assertTrue("Value is still false", b);
        assertNotNull("Value is null",iTestServiceCall.asBinder());

ここで、MyService は私が作成したサービスで、MyFile は Aidl です。

于 2012-12-04T08:09:49.370 に答える