How to test methods that deal with SQLite database in android?

时光怂恿深爱的人放手 提交于 2019-12-12 20:35:29

问题


I have made an application that deals with SQLite database by opening, retrieving data from, and inserting data to it. Now I want to test my methods.

So , I have two classes, one "SQLiteHelper" which extends SQLiteOpenHelper to open,create,and upgrade the database, and the other is a DataSource class, that makes an SQLiteDatabase object,and contains all my methods that deals with the database.

So for calling any method I need to call the open method in the SQLiteHelper class, catch the result in an SQLiteDatabse object,then make an object of the DataSource class,and finally call the method( which contains a cursor as a result of a rawquery for example).

I know that it won't work with simple JUnit test, and I've read about Mock Objects, but I still don't understand how I can use it in my case.


回答1:


I know that it won't work with simple JUnit test

It will. Just call your methods as usual and check results for correctness.

The only important thing is that you should prefer to use IsolatedContext for your database creation. In this case your original database file from the app will remain unmodified. All tests will work with separate testing database file which can be modified or even deleted as many times as you want.

You can acquire proper IsolatedContext from ProviderTestCase2. (You can also look ProviderTestCase2 sources to understand how it works.)



来源:https://stackoverflow.com/questions/13009259/how-to-test-methods-that-deal-with-sqlite-database-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!