在非Android项目上进行Android JUnit测试

在非Android项目上进行Android JUnit测试,android,Android,我已经将我的大部分android游戏代码分离成一个单独的可重用的“Java项目”。“Android项目”基本上启动一个表面视图,然后从我的外部“Java项目”加载一个包含必要对象的新线程 考虑到外部“Java项目”需要应用程序上下文,我如何在此基础上运行JUnit测试 我不想在Android项目中进行单元测试,因为我可能有3个以上不同的项目,所有项目都使用“Java项目”中的代码。如果您只需要一个上下文来初始化所有内容,而不调用上下文中的real方法,那么您可以使用Mock/Stub,这是一个伪

我已经将我的大部分android游戏代码分离成一个单独的可重用的“Java项目”。“Android项目”基本上启动一个表面视图,然后从我的外部“Java项目”加载一个包含必要对象的新线程

考虑到外部“Java项目”需要应用程序上下文,我如何在此基础上运行JUnit测试


我不想在Android项目中进行单元测试,因为我可能有3个以上不同的项目,所有项目都使用“Java项目”中的代码。

如果您只需要一个上下文来初始化所有内容,而不调用上下文中的real方法,那么您可以使用Mock/Stub,这是一个伪上下文对象,它只具有接口,但不执行任何操作


不过,我的建议是进一步分离代码。尝试将尽可能多的代码从依赖android的类中移开。通过这种方式,您可以使用一些干净的JUnit4测试来测试逻辑。然后在android项目中,您将进行一些android Junit测试,并检查这些东西是否在android上运行。

谢谢,我如何创建模拟上下文对象?另外,当我创建一些对象时,我会将可绘制的引用传递给外部类。例如,我有一个Room类,我从我的drawable中传递上下文、背景图像和背景掩码。我还没有在android上下文中使用它,但我建议生成模拟。