为电容器原生 Android 插件创建单元测试

Ami*_*irZ 5 android capacitor


我正在尝试为我创建的电容器插件添加一些 Android 本机单元测试。问题是该方法期望获取一个 PluginCall 对象作为参数。在 iOS 中,这非常简单。例如:

func test()
{
    let data = "madness? THIS. IS. DATA!!!!! ~Leonidas I, King of Data, around 480 BCE"
    let plugin = Plugin()

    let call = CAPPluginCall(callbackId: "test", options: [
        "data": data
    ], success: { (result, call) in
        let resultValue = result?.data["data"] as? Data
        XCTAssert(resultValue != nil)
    }, error: { (err) in
        XCTFail("Error shouldn't have been called")
    })

    plugin.doSomethingCool(call!)
}
Run Code Online (Sandbox Code Playgroud)

真的很简单的事情。

尝试在 Android 上做同样的事情,效果不太好。
要实例化一个新的 PluginCall 对象,我必须向构造函数传递一个 MessageHandler 对象,要实例化一个 MessageHandler 对象,我必须传递一个 Bridge 对象,要实例化一个桥接对象,我必须传递一个编译器不传递的 PluginManager 对象甚至认识。显然是一项不可能完成的任务。
当然,我总是可以用实际数据替换 PluginCall 参数,但我希望对我的插件进行完整的测试覆盖,而不是为了测试它而省略其中的大部分内容。尝试在网上搜索这个问题没有结果,甚至官方文档也没有提及任何内容,所以我转向SO。有没有人以前做过类似的事情并且可以指出我正确的方向?

TL;DR
如何为电容器插件创建 Android 本机单元测试?

谢谢 :)