Junit和Mockito抛出java.lang.NoSuchMethodError:org.springframework.test.web.servlet.setup.StandaloneMockMvcBuilder

问题描述 投票:0回答:1

当我尝试在Eclipse中运行单元测试类时遇到以下错误。

错误StackTrace。

java.lang.NoSuchMethodError:org.springframework.test.web.servlet.setup.StandaloneMockMvcBuilder $ StandaloneConfiguration.getInterceptors(Lorg / springframework / format / support / FormattingConversionService; Lorg / springframework / web / servlet / resource / ResourceUrlProvider;)[Ljava / lang / Object;在org.springframework.test.web.servlet.setup.StandaloneMockMvcBuilder $ StandaloneConfiguration.getHandlerMapping(StandaloneMockMvcBuilder.java:458)在org.springframework.test.web.servlet.setup.StandaloneMockMvcBuilder.registerMvcSingletons(StandaloneMockMvcBuilder.java:392)在org.springframework.test.web.servlet.setup.StandaloneMockMvcBuilder.initWebAppContext(StandaloneMockMvcBuilder.java:370)在org.springframework.test.web.servlet.setup.AbstractMockMvcBuilder.build(AbstractMockMvcBuilder.java:140)在campion.controller.CampionControllerTest.setUp(CampionControllerTest.java:46)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)在org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:133)在org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:96)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl $ PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:310)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl $ PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl $ PowerMockJUnit47MethodRunner.access $ 100(PowerMockJUnit47RunnerDelegateImpl.java:59)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl $ PowerMockJUnit47MethodRunner $ TestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:147)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl $ PowerMockJUnit47MethodRunner.evaluateStatement(PowerMockJUnit47RunnerDelegateImpl.java:107)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl $ PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl $ PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:298)在org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87)在org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:218)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:160)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl $ 1.run(PowerMockJUnit44RunnerDelegateImpl.java:134)在org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)在org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:136)在org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117)在org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57)在org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59)在org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)在org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

Java代码

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import java.util.ArrayList;
import java.util.List;

import static org.mockito.Matchers.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.powermock.api.mockito.PowerMockito;
import org.powermock.modules.junit4.PowerMockRunner;

import campion.dao.CampionServiceDao;

@RunWith(PowerMockRunner.class)
public class CampionControllerTest {

    public CampionServiceDao campionServiceDao;


    private MockMvc mockMvc;

    @InjectMocks
    private CampionController campionController;



    @Before
    public void setUp()  {
        campionServiceDao = PowerMockito.mock(CampionServiceDao.class);
        mockMvc = MockMvcBuilders.standaloneSetup(campionController).build();
    }


    @Test
    public void testValidateCampionRequest() throws Exception {

pom.xml依赖项

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.2.6.RELEASE</version>
    <scope>test</scope>

</dependency>



    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>2.0.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>2.0.4</version>
        <scope>test</scope>
    </dependency>
     <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
eclipse junit mockito powermockito
1个回答
-2
投票

resurge减肥要领:吃的卡路里多于您消耗的卡路里,您可能会增加体重;如果您的消费量超过消费量,就会失去它。目前,减肥是一个目标,如果我们坚持按照指示服用,不要安排食物,那么这个目标一定可以成功实现。

keto tonic,对于某些人来说,手术治疗可能是原则所相信的。手术方法在最近几年的治疗方法中具有优越性,并且最大程度地令人信服,因为它们通常会引起可观的体重减轻。

© www.soinside.com 2019 - 2024. All rights reserved.