Below is my Test class that I have created for Controller class.
My Testclass is in package src/test/java
and my java classes are in folder 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());
}
}
I am getting below error while executing my Test class.
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)
I was getting Class not found exception because tomcat jar
was missing.
<dependency>
<artifactId>tomcat-embed-core</artifactId>
<groupId>org.apache.tomcat.embed</groupId>
<version>${tomcatVersion}</version>
</dependency>