Mockito: التقاط httpservletresponse#senderror ()
سؤال
هل بإمكاني استخدم 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). بالنسبة للكائنات التي لا يمكنك أن تسخر منها ، يمكنك في بعض الأحيان فحص الأجزاء الداخلية الخاصة بهم وعملية بعض الأساليب بهذه الطريقة.
إذا كان بإمكانك نشر بعض الكود ، فيمكنني إلقاء نظرة عليه.
لا تنتمي إلى StackOverflow