【问题标题】:how to write unit test for this case如何为这种情况编写单元测试
【发布时间】:2016-12-10 18:29:11
【问题描述】:

我需要为此方法编写一个单元测试,它读取一个列表,然后将此列表构建到一个 csv 文件,因为这是我第一次编写这样的单元测试,有什么我需要注意的吗?我需要测试的东西? 我需要验证什么?

@RequestMapping(
        value = "report1",
        method = RequestMethod.GET)
    public void report1Builder(HttpServletRequest request, HttpServletResponse response) {

    List<InventoryLevelViewRecordMock> mockQueryResponse = this.InsertMockData();

    StringBuilder csvBuilder = new StringBuilder();

    //build header
    csvBuilder.append("SKU,Count");

    for (int i =0; i< mockQueryResponse.size(); i++) {
        csvBuilder.append("\n")
                .append(getCsvString(mockQueryResponse.get(i)));
    }

    response.setContentType("text/csv");
    response.setHeader("Content-disposition", "attachment; filename= live-report1.csv");
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Expires", "-1");

    try {
        response.getOutputStream().write(csvBuilder.toString().getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private String getCsvString(InventoryLevelViewRecordMock data) {
    StringBuilder sb = new StringBuilder();
    sb.append(data.SKU);
    sb.append(",");
    sb.append(data.INVENTORY_COUNT);
    return sb.toString();
}

【问题讨论】:

    标签: java unit-testing


    【解决方案1】:

    有什么我需要注意的,比如我需要测试哪些东西?我需要验证什么?

    • 您验证被测代码的可观察行为。 这是
      1 返回值
      2 与依赖的交互
      3种错误情况

    • 每个测试只验证一个假设。

    【讨论】:

    • 这个方法没有返回值,3个错误条件是什么?我只看到一个
    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    相关资源
    最近更新 更多