在 Junit 5 中使用 MockMvcBuilders.standaloneSetup() 方法时出现 java.lang.NoClassDefFoundError 异常

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

下面是我为控制器类创建的测试类。

我的测试类位于包

src/test/java
中,我的java类位于文件夹
src/main/java
中。

public class MyControllerTest {
    @InjectMocks
    private MyController myController;

    @Mock
    private MyCommonService myCommonService;

    private MockMvc mockMvc;

    @BeforeEach
    public void setup() {
        MockitoAnnotations.openMocks(this);
        mockMvc = MockMvcBuilders.standaloneSetup
                (new MyCommonServiceController()).build();
    }
 @Test
    public void testDataReturnsOk() throws Exception {
        when(myCommonService.getData())
                .thenReturn(Collections.singletonList(new myDto()));

        mockMvc.perform(get("/data"))
                .andExpect(status().isOk());
    }
}

我在执行测试类时遇到以下错误。

java.lang.NoClassDefFoundError: jakarta/servlet/ServletException

    at org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup(MockMvcBuilders.java:76)
    at com.markitclear.cui.cp.rest.controller.CPCommonServiceControllerTest.setup(CPCommonServiceControllerTest.java:36)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
java spring-boot spring-mvc junit junit5
1个回答
0
投票

我遇到了找不到类异常,因为

tomcat jar
丢失了。

<dependency>
            <artifactId>tomcat-embed-core</artifactId>
            <groupId>org.apache.tomcat.embed</groupId>
            <version>${tomcatVersion}</version>
        </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.