1 回答

TA貢獻1871條經驗 獲得超13個贊
在沒有更好的答案的情況下,我最終在測試中使用反射來注入這兩個屬性的值。不理想,但它的工作原理:
public class MyExceptionMapperTest {
@Mocked
private HttpServletRequest mockHttpServletRequest;
@Mocked
private HttpServletResponse mockHttpServletResponse;
private MyExceptionMapper exceptionMapper = new MyExceptionMapper();
@Before
public void setup() {
Field httpServletRequest = exceptionMapper.getClass().getDeclaredField("httpServletRequest");
httpServletRequest.setAccessible(true);
httpServletRequest.set(exceptionMapper, mockHttpServletRequest);
Field httpServletResponse = exceptionMapper.getClass().getDeclaredField("httpServletResponse");
httpServletResponse.setAccessible(true);
httpServletResponse.set(exceptionMapper, mockHttpServletResponse);
}
}
然后,在我的測試中,我可以像往常一樣對這兩個值設置期望和驗證。@Mocked
我不是反思方面的專家,所以這可能不是最好/最有效的方法,但它足以滿足我的需求。
添加回答
舉報