如何使用Mockmvc编写自定义异常处理测试?

时间:2019-02-08 13:28:20

标签: java spring exception-handling junit5 mockmvc

我正在使用junit5,我想为自定义异常创建测试。这是我的Controller方法:

@GetMapping("/get")
    public List<A> getList() {
        if (!hasTable()) {
            throw new TableNotFoundException("Table Not Found");
        }
        return getService().getList();
    }

    protected boolean hasTable() {
        return true;
    }

这是我的异常类:

@ResponseStatus(value = HttpStatus.NOT_FOUND, reason ="Table Not Found")
public class TableNotFoundException extends RuntimeException {

    public TableNotFoundException() {
    }

    public TableNotFoundException(String message) {
        super(message);
    }
}

这是我的测试方法:

@Test
    void getList()  {

        try {
            mockMvc.perform(get("get"))
                    .andExpect(status().isNotFound())
                    .andExpect(content().string("Table Not Found")).andDo(print());
        } catch (Exception e) {
            fail(e.toString());
        }
    }

运行测试时,我得到的错误是

java.lang.AssertionError:预期的响应内容:未找到表>但为:<> 预期的:找不到表 实际:

我该怎么办?有什么想法吗?谢谢大家:)

0 个答案:

没有答案