android-在JUnit4和Mockito中编写SQLiteOpenHelper测试用例

android-在JUnit4和Mockito中编写SQLiteOpenHelper测试用例,第1张

概述我正在尝试为我的数据库编写测试用例.我有一个扩展到SQLiteOpenHelper的帮助程序类DBHelper.javapublicDBHelper(Contextcontext){super(context,DBConstants.DATABASE_NAME,null,DBConstants.DATABASE_VERSION);}以及具有所有插入,删除

我正在尝试为我的数据库编写测试用例.

我有一个扩展到sqliteOpenHelper的帮助程序类

DBHelper.java       public DBHelper(Context context) {            super(context, DBConstants.DATABASE_name, null, DBConstants.DATABASE_VERSION);        }

以及具有所有插入,删除等的构造函数类.

DBController.java      public DBController open() throws sqlException {            dbHelper = DBHelper.getInstance(context);            database = dbHelper.getWritableDatabase();            return this;        }

我的考试课

DBControllerTest.java@Mock    Context mContext;    DBController dbController;    @Before    public voID setUp() throws Exception {        MockitoAnnotations.initMocks(this);        RenamingDelegatingContext context = new RenamingDelegatingContext(mContext, "test_");        dbController = new DBController(context);        dbController.open();    }

在这里,当我执行dbController.open()时,dbHelper.getWritableDatabase()始终返回null.

我该如何解决这个问题.我也是在以正确的方式嘲笑它.我已经搜索了很多,但没有找到解决方案.什么是测试数据库查询的最佳方法.

解决方法:

您不能像这样模拟Context,而需要使用工具的Context.由于此测试需要AndroID代码并因此需要检测,因此请确保将其放入androIDTest目录中的测试中.

有关示例,请参见this答案.

总结

以上是内存溢出为你收集整理的android-在JUnit4和Mockito中编写SQLiteOpenHelper测试用例全部内容,希望文章能够帮你解决android-在JUnit4和Mockito中编写SQLiteOpenHelper测试用例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1090355.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存