我创建了一个具有android实现的cordova插件。此Java代码调用SDK,该SDK与移动设备所连接的特定硬件接口。我想为我的Java代码编写单元测试并模拟所有对SDK的调用,以便我可以在CI期间运行测试。
在研究这个时,我找到了cordova-plugin-test-framework,但从我所知道的,这是针对javascript代码编写的测试,而不是实际的平台实现。我确定我可以使用它并编写一些测试,但是它需要将移动设备连接到硬件,而我并不想要实际调用SDK。换句话说,我没有办法使用此方法模拟SDK调用。
我想也许我可以使用我的Java代码从命令行运行JUnit,但后来因为无法找到org.apache.cordova.CallbackContext
而收到错误。我尝试伪造自己的对象,但是在我继续的时候,我发现了更多的依赖关系,我的代码是孤立的,并不知道。
接下来我认为最好在我的离子移动应用程序中的/platforms
下的android项目中测试它,因为此时所有依赖项都是可见的。我可以从此处运行./gradlew test
(https://developer.android.com/studio/test/command-line.html),但我无法弄清楚如何实施测试用例,以便此调用可以接收它们。我可以添加某种配置,以便知道在哪里寻找测试吗?如果只有一个地方我必须放置它们,我会没事的。
我对此有任何选择。我只是希望能够在CI过程中运行JUnit测试。