Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Robotium-在执行测试用例之前执行任务_Java_Android_Testing_Robotium - Fatal编程技术网

Java Robotium-在执行测试用例之前执行任务

Java Robotium-在执行测试用例之前执行任务,java,android,testing,robotium,Java,Android,Testing,Robotium,我刚刚开始学习Robotium,我已经编写了一个测试用例来重置我应用程序中记录的统计数据。我想知道是否有一种方法可以自动创建统计数据,而无需每次运行测试时自己手动创建统计数据 谢谢 编辑: 在运行第一个测试之前,我已经在数据库中添加了一些随机值。但是,这会导致NullPointerException 这是我用来创建一些统计数据的方法: private void createStats() { Context context = getInstrumentation().getTarget

我刚刚开始学习Robotium,我已经编写了一个测试用例来重置我应用程序中记录的统计数据。我想知道是否有一种方法可以自动创建统计数据,而无需每次运行测试时自己手动创建统计数据

谢谢

编辑:

在运行第一个测试之前,我已经在数据库中添加了一些随机值。但是,这会导致NullPointerException

这是我用来创建一些统计数据的方法:

private void createStats() {
    Context context = getInstrumentation().getTargetContext();
    mDbAdapter = new PlayDbAdapter(context);
    mDbAdapter.updateViews(8, 5);
    mDbAdapter.updateViews(7, 3);
    mDbAdapter.updatePrompts(7, 2);
    mDbAdapter.updateCompletions(8, 1);
    mDbAdapter.close();
}
在运行第一个测试时调用此方法。updateViews方法如下所示:

public boolean updateViews(long rowId, int views) {
    ContentValues args = new ContentValues();
    args.put(KEY_VIEWS, views);
    return mDb.update(DB_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}

在上述方法中,null指针发生在return语句中。知道这是为什么吗?

我看不到您的所有代码,但我猜您会出现此错误,因为您没有正确打开数据库


如果不是这样,我将需要查看更多的代码来了解发生了什么。

我找到了获取空指针的原因。在访问数据库之前,我忘了打开适配器。多么愚蠢的错误

它们如何存储在应用程序中?它们是否被放入数据库?变成共享偏好?它们只是活动中的一个变量吗?它们的存储方式将改变我们伪造它们的方式!是的,它们存储在数据库中,所以我想我可以在运行测试之前,在数据库中输入一些任意值。