测试cordova插件的android实现

dnc*_*253 6 junit android unit-testing cordova cordova-plugins

我创建了一个cordova插件,它有一个android实现。该 Java 代码调用了一个 SDK,该 SDK 与移动设备所连接的特定硬件进行交互。我想为我的 Java 代码编写单元测试并模拟对 SDK 的所有调用,以便我可以在 CI 期间运行测试。

在研究这个问题时,我发现了cordova-plugin-test-framework,但据我所知,这是针对 javascript 代码编写的测试,而不是实际的平台实现。我确信我可以使用它并编写一些测试,但它需要移动设备连接到硬件,并且我不想对 SDK 进行实际调用。换句话说,我没有办法使用它来模拟 SDK 调用。

我想也许我可以用我的 Java 代码从命令行运行 JUnit,但后来我收到错误,因为它找不到org.apache.cordova.CallbackContext. 我尝试伪造自己的对象,但随着我继续,我发现了更多我的代码单独不知道的依赖项。

接下来,我认为最好在/platforms我的 ionic 移动应用程序下的 android 项目中测试它,因为此时所有依赖项都将可见。我可以从这里运行./gradlew testhttps://developer.android.com/studio/test/command-line.html),但我不知道如何实现测试用例,以便此调用将选择它们向上。我可以添加某种配置以便它知道在哪里寻找测试吗?如果我必须把它们放在某个特定的地方,那就太好了。

我对此持开放态度。我只是希望能够运行 JUnit 测试作为我们 CI 流程的一部分。