I want to use robolectric(3+) for unit testing in my project. The issue is that in our project we are not using the sqlite dependencies from android.database.sqlite but the compiled source code from sqlite project(org.sqlite.database). This is because we are using hardware based encryption in our DB for security. The dependencies on org.sqlite.database calls native code. Robolectric does not support any external native code(will give java.lang.UnsatisfiedLinkError). The ContentProvider and SQLite helper class in my project references the code in org.sqlite.database packages for creating tables, building queries, table joins. Now, I can create another content provider for test cases, but it can cause code duplication and it won't be testing the actual content provider. Within the content provider, I can separate DB operations into different classes but again it will be code duplication. It seems like I have to run them as instrumented test cases. If anybody has some suggestions, it will be great.
How to unit test Content provider and DB calls in robolectric which has native dependencies
569 Views Asked by Kanishk At
1
There are 1 best solutions below
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in SQLITE
- How to insert values into Android SQLite Database?
- Inserting and returning autoidentity in SQLite3
- sqlite3 select statement fails with "parameters are of unsupported type
- Android database query not returning any results
- No such column error when column does exist
- Can't insert " character into Sqlite DB [Objective-C]
- How do I Insert a Previously Created SQLite Database into a Xamarin.Android App?
- Clearing database for emulator app so it acts like being run for the first time?
- SQLite UPDATE statement updates all row in table
- ActiveResource::ResourceNotFound: Failed. Response code = 404. Response message = Not Found
- Syntax error in rails database query
- Deleting and Updating values from a cusrsor adapter
- restrict sqlite-wal and sqlite-shm from icloud backup
- Recieveing Null Pointer Exception when trying to retrieve data from SQL database to listview android
- Scraping blog and saving date to database causes DateError: unknown date format
Related Questions in UNIT-TESTING
- How to write tests for classes with inheritance
- PHPunit call magic methods
- Convert IEnumerable to IObservable with variable Period
- How to a run specific code before & after each unit test in Python
- Unit testing a class A that derives from an abstract class B
- Is there another way to unit test business logic in mvc
- Some of my tests show prepended with junit.framework
- Selenium Driver Service not found exception
- Can not convert from Class<PowerMockRunner> to Class<? extends Runner>
- AngularJS Unit Testing - multiple mocks and providers
- How to use Sinon.js FakeXMLHttpRequest with superagent?
- Get Mock with AutoMock.Create<>()
- Mock service that takes unitOfWork in constructor
- Cleanest method for creating a pytest test fixture that takes in dynamic text data
- g++ 5.1.0 not building project, clang shows unknown error
Related Questions in ROBOLECTRIC
- Empty test suite: /InstrumentationResultParser: test run failed: 'Instrumentation run failed due to 'java.lang.NullPointerException''
- Robolectric: how to test class which use application instance inside?
- Using Robolectric, how to init and finalize stuff before and after all test methods in a test class is ran
- Difference between preference fragment and "regular" fragment
- Make Robolectric run test for the current build type only
- "Activity has been destroyed" error on Fragment testing with Robolectric
- Adding intent to activity in Robolectric before onCreate
- initializationError while executing Robolectric JUnit 4 test case
- Accessing a list of preferenceFragment views
- Robolectric issue with appcompat-v7:22.2.0
- How to unit test the GPS location in android using Robolectric?
- shadowOf() undefined in Robolectric-3.0-rc3.jar
- How to unit test Content provider and DB calls in robolectric which has native dependencies
- How verify the call to an interface with Mockito?
- Robolectric says "AndroidManifest.xml not found"
Related Questions in ANDROID-TESTING
- Empty test suite: /InstrumentationResultParser: test run failed: 'Instrumentation run failed due to 'java.lang.NullPointerException''
- How can i increase session timeout (which is 30 minutes by default)
- Unit test for uses-permission permissions
- Visualizer Disabled while using Battery Historian
- Import tests from eclipse to android studio
- Existing Android UI tests stopped working after switching to AndroidJUnitRunner
- Can Activity classes be made launchable only during development/debug?
- Simulate user click in system activities with Android Espresso framework
- Robolectric issue with appcompat-v7:22.2.0
- How to unit test Content provider and DB calls in robolectric which has native dependencies
- Android: Writing test cases for Fragments
- Library resources with Robolectric 3 - JodaTime
- Espresso idling resource not working if long running task is started in Activity's onCreate?
- How to findObject in UiAutomator using position on screen (bounds)
- Robolectric in CI environment
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
We are running those tests as instrumented tests. Currently robolectric does not support any outside native code and gives this error when trying to access any native method. So there was no other option other than to run all the DB related unit tests on a device.