下面是我为控制器类创建的测试类。
我的测试类位于包
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)
我遇到了找不到类异常,因为
tomcat jar
丢失了。
<dependency>
<artifactId>tomcat-embed-core</artifactId>
<groupId>org.apache.tomcat.embed</groupId>
<version>${tomcatVersion}</version>
</dependency>