如何为这种情况编写单元测试

时间:2016-12-10 18:29:12

标签: java unit-testing

我需要为这个方法编写一个单元测试,它会读取一个列表然后将这个列表构建到一个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();
}

1 个答案:

答案 0 :(得分:0)

  

我需要注意哪些东西需要测试?我需要验证哪一件事?

  • 验证正在测试的代码的可观察行为。 这是
    1返回值
    2与依赖的互动
    3错误条件

  • 每项测试都只验证一次出现。