0
私のアプリケーションの単体テストを書き始めていて、AndroidスタジオのMockito
機能に問題があります。例えば、私はContext
オブジェクトを模倣することはできません。ここに私の非常に基本的なコードは次のとおりです。Androidで動作しないMockitoテストフレームワーク
ExampleUnitTest.javaクラス:私は、このような依存関係を持っている私のアプリレベルbuild.gradleファイルで
package com.mypackage;
import android.content.Context;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class ExampleUnitTest {
@Mock Context context;
@Test
public void test() throws Exception {
when(context.getString(any(Integer.class))).thenReturn("Test");
}
}
:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
compile 'com.google.android.gms:play-services:10.0.1'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.1.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
そうに従ってすべてのチュートリアルなど、すべてがOKです。私は私のテストを実行しようとする。しかし、私はそのような例外を取得:
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
Unnecessary stubbings detected in test class: ExampleUnitTest
Clean & maintainable test code requires zero unnecessary code.
Following stubbings are unnecessary (click to navigate to relevant line of code):
1. -> at com.gapps.trailplanner.ExampleUnitTest.test(ExampleUnitTest.java:20)
Please remove unnecessary stubbings. More info: javadoc for UnnecessaryStubbingException class.
at org.mockito.internal.exceptions.Reporter.formatUnncessaryStubbingException(Reporter.java:838)
at org.mockito.internal.junit.UnnecessaryStubbingsReporter.validateUnusedStubs(UnnecessaryStubbingsReporter.java:30)
at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:45)
at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:104)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
私はシンプルContext
オブジェクトgetString()
メソッドの機能を模擬することができないことをここで間違ってやっていますか?
例外トレースの上位6行はかなり明確です。 –