4

我正在使用 eclipse 为我的项目编写 JUnit 测试用例。我的项目包含一个基于 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

和一个具有方法的代理类

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

还有我创建的一些方法。我想使用 JUint Test 测试上述方法。是否可以使用 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 回答