gpt4 book ai didi

java - Spring MVC 模拟

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:15 25 4
gpt4 key购买 nike

我正在尝试使用 Spring MVC 模拟模块对我的 Controller 进行单元测试。我添加了这个:

    @Before
public void beforeTest() {
MockitoAnnotations.initMocks(this);
standaloneSetup(new CarController());
}

效果很好。然而,我已经创建了一个 Controller 建议,它有一个用 @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 进行单元测试。例如,当我添加了异常处理程序时,我应该怎么做?

最佳答案

Bottom line is that I want to unit test my rest api. How should I do this when I have added a exception handler for instance?

对于一个人,我会使用内置的 spring mock 框架,从 3.2 版开始可用,但并不放心(它可能很好,但不能想象它也被集成)。这可能涵盖了 getting started 的基础知识.

其次,您可以在测试方法中try and catch,然后断言 boolean 值是否抛出异常。或者测试是否从 Controller 返回异常消息,例如,对状态代码 500 执行期望。这将取决于您的 API。

关于java - Spring MVC 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com