के साथ मॉकिटो का उपयोग करते समय मैं अपने पैरों को टीडीडी के साथ गीला करने की कोशिश कर रहा हूं। मैं MockMvc और Junit के संयोजन के साथ Mockito का उपयोग कर नियंत्रकों के लिए इकाई परीक्षण मामलों को लिखने की कोशिश कर रहा हूँ।java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted() जूनिट
लेकिन मुझे रनटाइम त्रुटि मिल रही है जिससे मेरा परीक्षण विफल हो रहा है। सबसे पहले मुझे javax.servlet.SessionCookieConfig
खोजने में विफलता के कारण सेटअप में MockMvc इंस्टेंस प्रारंभ करने में समस्या का सामना करना पड़ रहा था।
यह मैं javax.servlet
एपीआई को डाउनलोड करने और इस परियोजना के निर्माण के रास्ते में यह विन्यस्त करने लेकिन जब MockMvc उदाहरण पर perform()
का उपयोग कर तो मैं
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()
का सामना करना पड़ रहा द्वारा हल।
क्या कोई मुझे बता सकता है कि इस तरह की निर्भरताओं के साथ क्या करना है क्योंकि मुझे लगता है कि यह असंगत सर्वर सर्वलेट-एपीआई और javax.servlet api के कारण होता है।
संपादित करें: मैं कोड मैं इकाई परीक्षण के लिए उपयोग कर उपयोग कर रहा हूँ पोस्टिंग कर रहा हूँ, लेकिन मुझे नहीं लगता कि यह किसी भी मदद लेकिन सिर्फ मामले में होगा: बहुत ज्यादा है जैसे आप गलत है
@RunWith(MockitoJUnitRunner.class)
public class MyControllerTest {
@InjectMocks
private MyController myController = new MyController();
@Mock
private MyService myService = new MyServiceImpl();
private MockMvc mockMvc;
@Before
public void setUp(){
this.mockMvc = MockMvcBuilders.standaloneSetup(myController).build();
}
@Test
public void testList() throws Exception{
A a = new A();
a = createMockClassA();
Mockito.when(myService.getServiceForA(Mockito.anyMapOf(String.class, String.class))).thenReturn(a);
MvcResult result = this.mockMvc.perform(get("/somePath/")).param("someExpectedParam","value").andReturn();
System.out.println(result.getResponse().getContentAsString());
}
private static A createMockClassA(){
A a = new A();
a.setId(i);
a.setTitle("mock-" + i);
return a;
}
}
हाय जेन्स, मैं एपीआई isAsyncStarted सर्वलेट 3.0 में जोड़ दिया गया है की जाँच की और मैं अपने प्रोजेक्ट निर्माण में java.servlet-3.0.jar उपयोग कर रहा हूँ। – Sourabh
विकास के लिए ठीक है। जांचें कि सर्वर एक ही सर्वलेट एपीआई स्तर का उपयोग कर रहा है या नहीं। –
सर्वर एक ही सर्वलेट एपीआई स्तर का है। – Sourabh