在我的应用程序中,我有一个Activity,它基本上是一个表单,供用户输入数据,然后通过ContentResolver
插入到数据库表中。我该如何测试此活动?
我的第一次尝试是使用ActivityInstrumentationTestCase2
,它为我提供了完整的工具来模拟输入数据。但是,在每次测试之间,基础ContentProvider
没有被关闭和销毁,这使得数据库在后续测试开始时处于未知状态。
我的第二次尝试是使用ActivityUnitTestCase
并注入一个模拟上下文,可以为每个测试清理数据库。但是,这不允许我输入文本或单击活动中的按钮,因为它实际上从未在测试设备上绘制。
有没有人对我还能尝试什么有任何建议?
答案 0 :(得分:0)
似乎您一直在使用的是用于库开发
你应该看看猴子二进制here,这对我很有用。
如果您对此不满意,可以使用monkeyRunner来控制您正在运行的测试。
编辑: 就数据库测试而言,你不能在每次测试后使用sqlite3二进制文件进行简单的查询吗?
EDIT2: 我正在考虑执行以下操作的.sh脚本:
网上有大量的.sh脚本示例,所以你不应该有这个问题。
我假设您在adb shell中执行了所有操作,但如果您不这样做,请确保正确设置所有环境变量。特别是ANDROID_ROOT,ANDROID_ASSETS和ANDROID_DATA应相应地设置为“/ system”,“/ system / app”和“/ data”。另外不要忘记“chmod”.sh文件是可执行的(chmod 777 file.sh)。
另一个建议是生成并跟踪猴子随机种子,以便您可以重复导致问题的某些输入。您可以使用-s参数指定种子。