如何单元测试 OpenCSV 解析



所以,我有一个这样的方法:

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();
    }
}

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

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

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

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

这可以按如下方式完成:

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

运行该方法,检查您是否得到正确的List<Metrics>,仅此而已。

相关内容

  • 没有找到相关文章

最新更新