سؤال

هل بإمكاني استخدم mockito لالتقاط ما تم تمريره إلى HttpServletResponse#sendError() طريقة؟ لا يمكنني معرفة كيفية القيام بذلك.

هل كانت مفيدة؟

المحلول

يجب عليك استخدام طريقة التحقق على Mockito للقيام بذلك. عادةً ما يسخر httpresponse ليس تجربة ممتعة.

mockResponse = mock(HttpSR→);
//…
verify(mockResponse, times(1)).sendError(..);

كحجيلات ل sendError يمكنك بعد ذلك اجتياز مطاعم Mockito ، والتي يمكنها إجراء أي فحص على الوسيطة التي تحتاجها.

نصائح أخرى

أعتقد أن الملصق أراد أن يعرف ، وكيفية استرداد الحجج التي تم نقلها إلى هذه الطريقة. يمكنك استخدام:

// given
HttpServletResponse response = mock(HttpServletResponse.class); 
ArgumentCaptor<Integer> intArg = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<String> stringArg = ArgumentCaptor.forClass(String.class);
doNothing().when(response).sendError(intArg.capture(), stringArg.capture());

// when (do your test here)
response.sendError(404, "Not found");

// then (do your assertions here, I just print out the values)
System.out.println(intArg.getValue());
System.err.println(stringArg.getValue());

قد ترغب في النظر إلى جواسيتو mockito (الفصل 13). بالنسبة للكائنات التي لا يمكنك أن تسخر منها ، يمكنك في بعض الأحيان فحص الأجزاء الداخلية الخاصة بهم وعملية بعض الأساليب بهذه الطريقة.

إذا كان بإمكانك نشر بعض الكود ، فيمكنني إلقاء نظرة عليه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top