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
575 views Asked by Kanishk At
1
There are 1 answers
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in SQLITE
- How to store a date/time in sqlite (or something similar to a date)
- How to copy data from SQLite to postgreSQL?
- When using a Room database on an Android application, is it possible to pre-populate data
- Expo Error - Android sqlite no such table
- how can debugg field id error in the database schema?
- How add array of authors for unique user in database in Goland IDE?
- Calculate SMA_Close10 and SMA_Close20 of minute data
- Transitioning from Static to Dynamic Data in React with Express Backend
- In SQLite, how to group ranges of values and sort the groups
- Issue with making python executable with local db, sqlite3, tkinter
- Calculating EuclideanDistance in SQL for Deepface facial embeddings?
- Problem with a simple query script used in RS Forms on Joomla 4
- Checking multiple user inputs to multiple fields in a sqlite3 database with python
- How to make that each seller has its own different set of products using sqlite and uwp
- peewee: SQLite - peewee Create() is forcing integer in PrimaryKeyField if leading character is numeric (even if there is a non-numeric in the middle)
Related Questions in UNIT-TESTING
- Google Truth.assertThat.contains does not behave similar to List.contains
- What's the best way to breakup a large test in pytest
- How to refer to the filepath of test data in test sourcecode?
- How to mock a dynamic endpoint in Apache Camel Spring Boot
- pytest mock failing when mocking function from imported package
- Jest configuration error while running test case in teamcity
- Resolve paths dynamically based on directory where test (or tested files) is located in Jest
- One-time implementation with Jest's mockResolvedValueOnce within test remains from one test to another
- Why can't I mock the decorator of the function?
- Gitlab pipeline stuck with nx cloud issue
- How to create an improperly closed gzip file using python?
- Nest.js service structure for API integration
- uiState not updating in Tests
- Unit Tests not Compiling or Being found without mod tests in main.rs. Is this a requirement or am I missing some configuration?
- Mocking Stream or Reader in Java Junit
Related Questions in ROBOLECTRIC
- Problem using BeforeClass with Robolectric
- Unable to advance time with ShadowSystemClock robolectric
- What causes intermittent Robolectric exception (warning) Explicit termination method 'close' not called
- Robolectric Fails to Instantiate Class, But Basic Tests Pass Individually
- Jacoco code coverage report is showing zero in AOSP junit testing
- How to exclude this library 'im.zego:express-video:3.4.0' in JUnit RobolectricTestRunner?
- Robolectric Test Looping without getting finish
- Receiver class org.robolectric.shadows.multidex.Shadows does not define or inherit an implementation of getShadows() of interface ShadowProvider
- Injecting NavBackStackEntry to composable in tests of NavHost
- Jacoco Not Showing Coverage for Robolectric Tests in Android Studio
- Test case failing: ClassCastException: androidx.lifecycle.ViewModel$Subclass1 cannot be cast to class SecondChildViewModel
- java.lang.OutOfMemoryError: Failed to load XXX.jar
- Use of robolectric's `shadowOf` causes a runtime error in androidTest module code
- Test case getting failed after robolectric library updatded to 4.9.0 getting status code 403 from server: Forbidden
- Difference between ShadowLooper.idle() and ShadowLooper.runToEndOfTasks()
Related Questions in ANDROID-TESTING
- Android Gradle Managed Device Test Fails Need to Read WindowHierarchy
- Espresso forces a test to wait 5 seconds on making a screenshot by DefaultFailureHandler when executing method onData()
- What is the difference between AndroidJUnit4::class and AndroidJUnit4ClassRunner::class?
- How to use android-reporting plugin with Kotlin DSL and Version Catalog?
- anndroid test fail java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider
- Run instrumented test inside module's androidTest
- Facing read ECONNRESET in Perfecto execution
- "Record espresso test" option is not enabled in Android Studio
- Directory does not contain gradle build error even though gradle build is in directory
- Why would androidTest not show as a directory type in the dropdown for New Directory?
- Android espresso tests clash with ActivityScenario causing "main thread" error (Kotlin)
- Skip androidx.startup when running instrumented tests
- End to end test for Passkey in mobile App
- Android UIAutomator: How to reset value of Companion Object after closing and restarting App in TestCase?
- launchFragmentInContainer<MyFragment> causing compile error in task app:compileDebugAndroidTestKotlin
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?
Popular Tags
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)
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.