【发布时间】:2014-02-10 19:50:34
【问题描述】:
我正在尝试使用 Spring MVC 模拟模块对我的控制器进行单元测试。我已经添加了这个:
@Before
public void beforeTest() {
MockitoAnnotations.initMocks(this);
standaloneSetup(new CarController());
}
效果很好。但是,我创建了一个控制器建议,其中有一个用@ExceptionHandler 注释的方法。我想测试它在单元测试期间是否有效。我看到我可以构建一个MockMvc 对象并将其传递给standaloneSetup(..):
MockMvcBuilders.standaloneSetup(
new CarController()).setHandlerExceptionResolvers(...).build();
但是,当我这样做时,检查异常处理程序是否正常工作的测试通过,但所有其他使用 jsonpath 访问响应的测试都失败并出现此错误:
java.lang.IllegalStateException: Expected response body to be verified as JSON,
HTML or XML but content-type 'null' is not supported out of the box.
Try registering a custom parser using:
RestAssured.registerParser("null", <parser type>);
Content was:
我该如何解决这个问题?怎么了?
底线是我想对我的 rest api 进行单元测试。例如,当我添加了异常处理程序时,我应该怎么做?
【问题讨论】:
-
此链接可能会对您有所帮助,因为作者还展示了如何测试 rest api 的预期异常以及其他测试。 > petrikainulainen.net/programming/spring-framework/…
-
你能举一个测试失败和通过的例子吗?我们必须查看您的异常处理程序和控制器方法。
-
我想我误解了它的用法。我将查看没有 Rest Assured 的 Spring MVC 测试框架并尝试一些示例。
标签: java spring unit-testing jakarta-ee spring-mvc