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
我不是反思方面的专家,所以这可能不是最好/最有效的方法,但它足以满足我的需求。
添加回答
举报