web-dev-qa-db-ja.com

java.lang.NoSuchMethodError:org.mockito.MockingDetails.getMockCreationSettings()Lorg / mockito / mock / MockCreationSettings

アプリケーションをspringbootに移行した後、jUnitsを実行しているときにこれらの問題に直面しています。バージョンの競合の問題です。これらは私が使用している依存関係とバージョンです:

  • mockito-core-2.2.7
  • mockito-all-2.0.2-beta
  • powermock-module-junit4-1.7.0RC2
  • powermock-api-mockito-1.7.0RC2
  • powermock-classloading-objenesis-1.7.0RC2

mockito-coreのMockingDetailsクラスには、このメソッドgetMockCreationSettings()がありますが、mockito-allにはありません。テストはどういうわけか、間違った依存関係からそのクラスを選択しています。 mockito-allを削除すると、他の多くのテストが失敗します。誰かが修正を手伝ってくれる?

Java.lang.NoSuchMethodError: org.mockito.MockingDetails.getMockCreationSettings()Lorg/mockito/mock/MockCreationSettings;
at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.Java:107)
at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.Java:81)
at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.Java:69)
at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.Java:56)
at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.Java:291)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.Java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.Java:86)
at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.Java:239)
at org.junit.rules.RunRules.evaluate(RunRules.Java:20)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.Java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.Java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.Java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.Java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.Java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.Java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.Java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.Java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.Java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.Java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.Java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.Java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.Java:190)
at org.Eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.Java:89)
at org.Eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.Java:41)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.Java:541)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.Java:763)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.Java:463)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.Java:209)
3
Praveesh P

同じ問題に直面した後、スタックトレースを確認しました。

Suppressed: Java.lang.NoSuchMethodError: org.mockito.MockingDetails.getMockCreationSettings()Lorg/mockito/mock/MockCreationSettings;
    at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.Java:107)
    at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.Java:81)
    ...

107行目でMockReset.Javaを確認したところ、mockito-allのバージョンが1.9.5からmockingDetailsがプロジェクトに挿入されていることがわかりました。

チェック こちら 不足しているメソッドがバージョン2.1.0以降であることを確認しました

私はmvn dependency:treeを実行して、これに伴ってどの依存関係がこのmockito-allをもたらしているかを見つけ、それを見つけたら、それをpomから除外しました。

   <dependency>
        <groupId>com.example</groupId>
        <artifactId>bla</artifactId>
        <version>1.1.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
0
riorio