MockBean问题

huangapple go评论84阅读模式
英文:

Mockbean issues

问题

然而,我使用`mockBean`添加了`mockEngine`:

```java
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Config.class})
public class CarTest {

    @MockBean
    Engine mockEngine;

    @Autowired
    ApplicationContext context;

    @Test
    public void testEngine() {
        when(mockEngine.getName()).thenReturn("mock enginer");
        Car car = context.getBean(Car.class);
        assertEquals(car.display(), "Engine = v8 5; tran = sliding");
    }
}

然后我得到了巨大的错误:

C:\Users\lsqua\.jdks\openjdk-14.0.2\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\lib\idea_rt.jar=49697:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath "...(后续内容被省略)...

Process finished with exit code -1

<details>
<summary>英文:</summary>

I just do a simple test with `MockBean` but always found errors.  Everything has been done with JDK 13.

I have a class `Car`:

@Component
public class Car {
private final Engine engine;
private final Transmission transmission;

@Autowired
public Car(Engine engine, Transmission transmission) {
    this.engine = engine;
    this.transmission = transmission;
}

String display() {
    return &quot;Engine = &quot; + engine.getName() + &quot;; tran = &quot; + transmission.getName();
}

}

@Configuration
@ComponentScan("test.mockbean.com")
public class Config {

@Bean
public Engine getEngine() {
    return new Engine(&quot;v8&quot;, 5);
}

@Bean
public Transmission GetTransmission() {
    return new Transmission(&quot;sliding&quot;);
}

}

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Config.class})
public class CarTest {
@Autowired
ApplicationContext context;

@Test
public void testEngine() {
    Car car = context.getBean(Car.class);
    assertEquals(car.display(), &quot;Engine = v8 5; tran = sliding&quot;);

}

}

However I add mockEngine using mockBean

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Config.class})
public class CarTest {

@MockBean
Engine mockEngine;

 @Autowired
ApplicationContext context;

@Test
public void testEngine() {
    when(mockEngine.getName()).thenReturn(&quot;mock enginer&quot;);
    Car car = context.getBean(Car.class);
    assertEquals(car.display(), &quot;Engine = v8 5; tran = sliding&quot;);

}

}

Then I got huge errors. 

C:\Users\lsqua.jdks\openjdk-14.0.2\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\lib\idea_rt.jar=49697:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\plugins\junit\lib\junit-rt.jar;C:\Users\lsqua\OneDrive\Desktop\codes\test_DI_withMockBean\target\test-classes;C:\Users\lsqua\OneDrive\Desktop\codes\test_DI_withMockBean\target\classes;C:\Users\lsqua.m2\repository\org\apache\maven\plugins\maven-compiler-plugin\3.8.1\maven-compiler-plugin-3.8.1.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-plugin-api\3.0\maven-plugin-api-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-model\3.0\maven-model-3.0.jar;C:\Users\lsqua.m2\repository\org\sonatype\sisu\sisu-inject-plexus\1.4.2\sisu-inject-plexus-1.4.2.jar;C:\Users\lsqua.m2\repository\org\sonatype\sisu\sisu-inject-bean\1.4.2\sisu-inject-bean-1.4.2.jar;C:\Users\lsqua.m2\repository\org\sonatype\sisu\sisu-guice\2.1.7\sisu-guice-2.1.7-noaop.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-artifact\3.0\maven-artifact-3.0.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-utils\2.0.4\plexus-utils-2.0.4.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-core\3.0\maven-core-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-settings\3.0\maven-settings-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-settings-builder\3.0\maven-settings-builder-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-repository-metadata\3.0\maven-repository-metadata-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-model-builder\3.0\maven-model-builder-3.0.jar;C:\Users\lsqua.m2\repository\org\apache\maven\maven-aether-provider\3.0\maven-aether-provider-3.0.jar;C:\Users\lsqua.m2\repository\org\sonatype\aether\aether-impl\1.7\aether-impl-1.7.jar;C:\Users\lsqua.m2\repository\org\sonatype\aether\aether-spi\1.7\aether-spi-1.7.jar;C:\Users\lsqua.m2\repository\org\sonatype\aether\aether-api\1.7\aether-api-1.7.jar;C:\Users\lsqua.m2\repository\org\sonatype\aether\aether-util\1.7\aether-util-1.7.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-interpolation\1.14\plexus-interpolation-1.14.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-classworlds\2.2.3\plexus-classworlds-2.2.3.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\lsqua.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\lsqua.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;C:\Users\lsqua.m2\repository\org\apache\maven\shared\maven-shared-utils\3.2.1\maven-shared-utils-3.2.1.jar;C:\Users\lsqua.m2\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;C:\Users\lsqua.m2\repository\org\apache\maven\shared\maven-shared-incremental\1.1\maven-shared-incremental-1.1.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-java\0.9.10\plexus-java-0.9.10.jar;C:\Users\lsqua.m2\repository\org\ow2\asm\asm\6.2\asm-6.2.jar;C:\Users\lsqua.m2\repository\com\thoughtworks\qdox\qdox\2.0-M8\qdox-2.0-M8.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-compiler-api\2.8.4\plexus-compiler-api-2.8.4.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-compiler-manager\2.8.4\plexus-compiler-manager-2.8.4.jar;C:\Users\lsqua.m2\repository\org\codehaus\plexus\plexus-compiler-javac\2.8.4\plexus-compiler-javac-2.8.4.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-context\5.2.9.RELEASE\spring-context-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-aop\5.2.9.RELEASE\spring-aop-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-core\5.2.9.RELEASE\spring-core-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-jcl\5.2.9.RELEASE\spring-jcl-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-expression\5.2.9.RELEASE\spring-expression-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\mockito\mockito-all\1.10.19\mockito-all-1.10.19.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-beans\5.2.9.RELEASE\spring-beans-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.3.4.RELEASE\spring-boot-autoconfigure-2.3.4.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\boot\spring-boot\2.3.4.RELEASE\spring-boot-2.3.4.RELEASE.jar;C:\Users\lsqua.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\lsqua.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-test\5.2.9.RELEASE\spring-test-5.2.9.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\boot\spring-boot-test\2.3.4.RELEASE\spring-boot-test-2.3.4.RELEASE.jar;C:\Users\lsqua.m2\repository\org\springframework\spring-web\5.2.8.RELEASE\spring-web-5.2.8.RELEASE.jar;C:\Users\lsqua.m2\repository\org\mockito\mockito-core\3.2.4\mockito-core-3.2.4.jar;C:\Users\lsqua.m2\repository\net\bytebuddy\byte-buddy\1.10.5\byte-buddy-1.10.5.jar;C:\Users\lsqua.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.5\byte-buddy-agent-1.10.5.jar;C:\Users\lsqua.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 test.mockbean.com.CarTest
Oct 24, 2020 5:16:56 PM org.springframework.test.context.support.AbstractTestContextBootstrapper buildDefaultMergedContextConfiguration
INFO: Neither @ContextConfiguration nor @ContextHierarchy found for test class [test.mockbean.com.CarTest], using SpringBootContextLoader
Oct 24, 2020 5:16:56 PM org.springframework.test.context.support.AbstractContextLoader generateDefaultLocations
INFO: Could not detect default resource locations for test class [test.mockbean.com.CarTest]: no resource found for suffixes {-context.xml, Context.groovy}.
Oct 24, 2020 5:16:57 PM org.springframework.test.context.support.AbstractTestContextBootstrapper getDefaultTestExecutionListenerClassNames
INFO: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
Oct 24, 2020 5:16:57 PM org.springframework.test.context.support.AbstractTestContextBootstrapper getTestExecutionListeners
INFO: Using TestExecutionListeners: [org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@73a1e9a9, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@71d44a3, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@7b98f307, org.springframework.test.context.support.DirtiesContextTestExecutionListener@4802796d, org.springframework.test.context.event.EventPublishingTestExecutionListener@34123d65, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@59474f18]

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.3.4.RELEASE)

[2020-10-24 17:16:57.639] - 17348 INFO [main] --- test.mockbean.com.CarTest: Starting CarTest on DESKTOP-IGMGBVL with PID 17348 (started by lsqua in C:\Users\lsqua\OneDrive\Desktop\codes\test_DI_withMockBean)
[2020-10-24 17:16:57.666] - 17348 INFO [main] --- test.mockbean.com.CarTest: No active profile set, falling back to default profiles: default
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.mockito.cglib.core.ReflectUtils$2 (file:/C:/Users/lsqua/.m2/repository/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.mockito.cglib.core.ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[2020-10-24 17:16:58.799] - 17348 INFO [main] --- test.mockbean.com.CarTest: Started CarTest in 1.5 seconds (JVM running for 2.541)
[2020-10-24 17:16:58.824] - 17348 WARNING [main] --- org.springframework.test.context.TestContextManager: Caught exception while invoking 'beforeTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@59474f18] for test method [public void test.mockbean.com.CarTest.testEngine()] and test instance [test.mockbean.com.CarTest@5215cd9a]
java.lang.NoSuchMethodError: 'org.mockito.mock.MockCreationSettings org.mockito.MockingDetails.getMockCreationSettings()'
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:289)
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.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.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

[2020-10-24 17:16:58.829] - 17348 WARNING [main] --- org.springframework.test.context.TestContextManager: Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@59474f18] for test method [public void test.mockbean.com.CarTest.testEngine()] and test instance [test.mockbean.com.CarTest@5215cd9a]
java.lang.NoSuchMethodError: 'org.mockito.mock.MockCreationSettings org.mockito.MockingDetails.getMockCreationSettings()'
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.afterTestMethod(ResetMocksTestExecutionListener.java:63)
at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:441)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
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.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

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

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:289)
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.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.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

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

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.afterTestMethod(ResetMocksTestExecutionListener.java:63)
at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:441)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
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.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

Process finished with exit code -1




</details>


# 答案1
**得分**: 1

刚刚发现了问题:

我在Maven中同时添加了`mockito-core`和`mockito-all`。
不知何故,`mockito-all`(仍然停留在1.10.19版本)覆盖了`mockito-core`。

<details>
<summary>英文:</summary>

Just found the issue:

I add both mockito-core and mockito-all in the maven. 
Somehow, mockito-all (still stuck at 1.10.19) overrides mockito-core.




</details>



# 答案2
**得分**: -1

```plaintext
https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.7/org/mockito/MockingDetails.html#getMockCreationSettings()

&gt; getMockCreationSettings MockCreationSettings&lt;?&gt;
&gt; getMockCreationSettings() 返回创建模ock时提供的各种模拟设置,例如:模拟的类,模拟名称(如果有),任何额外的接口(如果有)等等。另请参见MockCreationSettings。
&gt; 此方法对于框架集成商和某些边缘情况非常有用。
&gt; 
&gt; 如果传递给Mockito.mockingDetails(Object)的参数为null或非模ock,则此方法将抛出适当的异常。毕竟,非模ock对象没有任何模ock创建设置。
&gt; 
&gt; 自版本:
&gt; 2.1.0


问题在于您的版本。您可以通过`show dependencies`检查软件包的当前版本。

[![enter image description here][1]][1]

  [1]: https://i.stack.imgur.com/KDzH1.png
```

<details>
<summary>英文:</summary>

https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.7/org/mockito/MockingDetails.html#getMockCreationSettings()

&gt; getMockCreationSettings MockCreationSettings&lt;?&gt;
&gt; getMockCreationSettings() Returns various mock settings provided when
&gt; the mock was created, for example: mocked class, mock name (if any),
&gt; any extra interfaces (if any), etc. See also MockCreationSettings.
&gt; This method is useful for framework integrators and for certain edge
&gt; cases.
&gt; 
&gt; If null or non-mock was passed to Mockito.mockingDetails(Object) then
&gt; this method will throw with an appropriate exception. After all,
&gt; non-mock objects do not have any mock creation settings.
&gt; 
&gt; Since:
&gt; 2.1.0


The problem is your version. You can check the current version of your package by 
`show dependencies`.

[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/KDzH1.png

</details>



huangapple
  • 本文由 发表于 2020年10月25日 00:20:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/64515530.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定