【问题标题】:How To Unit Test OpenCSV Parsing如何对 OpenCSV 解析进行单元测试
【发布时间】:2019-04-05 17:41:47
【问题描述】:

所以,我有这样的方法:

public static List<Metrics> buildByColumnName(InputStream is, Class<? extends Metrics> clazz) {
    List<Metrics> metrics = null;
    MappingStrategy<Metrics> ms = new HeaderColumnMappingStrategy<>();
    ms.setType(clazz);

    try {
        Reader reader = new BufferedReader(new InputStreamReader(is));
        CsvToBean<Metrics> cb = new CsvToBeanBuilder<Metrics>(reader).withType(clazz).withMappingStrategy(ms).build();
        metrics = new ArrayList<>(cb.parse());
        reader.close(); 
    } catch (Exception e) {
        LOGGER.error("Error building metrics from CSV file: " + e);
        e.printStackTrace();
    }
}

并且我创建了一个单元测试,其中包含两个测试来测试异常情况,但我不确定我需要做什么/模拟来测试快乐的路径。有什么想法吗?

【问题讨论】:

    标签: java unit-testing junit mocking mockito


    【解决方案1】:

    好吧,由于这是一个静态方法,它的输出通常基于输入参数。

    您所要做的就是提供正确的参数并根据输入值测试函数是否返回预期值(我想您在异常情况下也做了同样的事情)。

    您可能需要构建InputStream 对象来模拟CSV 文件并提供测试数据。

    这可以按如下方式完成:

    InputStream stream = new ByteArrayInputStream("value1,value2,value3".getBytes());
    

    运行方法,检查是否得到正确的List&lt;Metrics&gt;,就是这样。

    【讨论】:

    • 啊,谢谢。我总是在嘲笑什么和不应该嘲笑什么上被绊倒。你和这个答案一起回答:stackoverflow.com/questions/16039468/… 帮助我构建了一个有效的快乐路径测试。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2019-02-22
    • 2013-09-30
    相关资源
    最近更新 更多