该应用程序生成CSV,自定义/标签分隔符等报告&为了制作这些报告的测试用例,我使用的是JUnit-4。
但是有些方法将大量数据作为格式化输出字符串返回,必须将其转储到文件中。现在,我面临着为断言产生预期结果的问题。
编辑:我正在测试一个方法,该方法将输入作为从数据库中取出的ArrayList&然后准备输出作为报告的格式正确的字符串。基本上,它从数据生成CSV。
此外,有人可以指出一些必须遵循单元测试的最佳实践。我已经浏览了各种在线资源,但不能说太多。
答案 0 :(得分:1)
您进行单元测试的方法是将数据作为参数并将其转换为CSV的方法。因此,它应该只测试这种转换是否有效,并且您应该使用最少的必要数据来提供它,以验证它确实有效。对于所有情况。
此方法应独立于从数据库中提取数据的方法,并且您不应从数据库中获取大量数据以对此方法进行单元测试。只需在内存中准备数据,并将其作为测试中数据转换方法的参数:
List<Foo> data = new ArrayList<Foo>();
data.add(createFooA());
data.add(createFooB());
String csv = myTestedObject.transformToCsv(data);
assertEquals("...", csv);