Reputation: 4576
I've started writing the unit tests for my application. I'm using Mockito to mock the objects.
This is the link I followed to include the mockito dependency in my app level gradle file. The problem is I'm unable to import mockito into my test class.
Here's my app build.gradle file for the reference.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
lintOptions {
disable 'HardcodedText','TextFields','OnClick'
}
}
repositories {
jcenter()
mavenCentral()
maven() {
name 'SonaType snapshot repository'
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
}
ext {
robobindingVersion = 'latest.integration'
//robobindingVersion = '0.8.6-SNAPSHOT'
}
dependencies {
testCompile "org.mockito:mockito-core:1.+"
compile("org.robobinding:robobinding:$robobindingVersion:with-dependencies") {
exclude group: 'com.google.guava', module: 'guava'
}
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
testCompile('org.robolectric:robolectric:3.0-rc2') {
exclude group: 'commons-logging', module: 'commons-logging'
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
apt "org.robobinding:codegen:$robobindingVersion"
compile 'junit:junit:4.12'
}
Upvotes: 2
Views: 5176
Reputation: 1827
This question was asked long ago and I assume it is no longer relevant for the asker. And I see a lot of answers that might work or solve and indiviuals problem and the right answer is among them. However, I did not see any answer yet that explains the reason why the asker of the original question was unable to import mockito.
The reason is that they declared the dependency on mockito as testCompile
. Next they tried to import them in an InstrumentationTestCase. These have a different dependency set.
OP should have declared the depencency using androidTestCompile
.
Furthermore, the keywords have changed since this question was asked. Now we use implementation
and api
to declare module dependencies.
Use implementation
when you do not need access to the dependencies of the module you depend on. You will use this most times.
Use api
if you do need the dependencies the module depends on yourself.
Again, use no prefix if you need it in the modules logic. Use the test prefix
if you need the dependency for local unit testing code (testImplementation "org.mockito..."
) and use the androidTest prefix if you need it in instrumentation tests (androidTestImplementation "org.mockito..."
).
Upvotes: 0
Reputation: 81
In my case, I solved it with modify the dependency level from 'testCompile' to 'implementation'
implementation 'org.mockito:mockito-core:5.3.1'
Upvotes: 2
Reputation: 159
Try changing
compile "org.mockito:mockito-core:1.+"
or implementation "org.mockito:mockito-core:1.+"
to
androidTestImplementation "org.mockito:mockito-core:1.+"
Upvotes: 4
Reputation: 21
I had the same problem and solve it just by using:
compile "org.mockito:mockito-core:1.+"
Hope it helps =]
Upvotes: 1
Reputation: 4576
Manually importing the mockito jar file did the thing for me. To do that, first create a directory called "libs" in your app directory. Take note that this directory should be in the same level as that of the src/main and build directories. Next, download the mockito jar file and paste it into the libs directory.
Include that into your dependencies in the app level build.gradle file:
dependencies {
compile files('libs/add-your-jar-file-name-here')
}
Sync the gradle and that should do the job.
Refer to this answer for more detailed answer with snapshots.
Upvotes: -1
Reputation: 368
Check this link .... this may useful
https://stackoverflow.com/a/34148132/5185201
// add dexOptions
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
// Enabling multidex support.
multiDexEnabled true
Upvotes: -1