gpt4 book ai didi

java - 如何为返回大数据的方法制作测试用例

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:05 25 4
gpt4 key购买 nike

应用程序生成 CSV、自定义/制表符分隔符等报告,为了对这些报告进行测试用例,我使用 JUnit-4。

但是有些方法以格式化输出字符串的形式返回大量数据,必须将其转储到文件中。现在,我面临着生成断言的预期结果的问题。

  1. 那怎么模拟呢,是不是又要写代码了,费劲。
  2. 在 JUnit 中编码(重新编码为原始代码)是否是一种好的做法,我当然对此表示怀疑。如果代码发生变化,它将是紧密耦合的并且测试用例将来会失败。
  3. 如何为返回巨大列表的方法制作测试用例,我可以将其限制为数百个,但无法模拟预期结果列表以与其进行比较。
  4. 此外,我使用 JUnit 在应用程序层(而不是 View 层)测试基于 Web 应用程序的功能。可以吗?或者我应该转向其他框架,例如 HttpUnit。
<小时/>

编辑:我正在测试一种方法,该方法接受从数据库获取的 ArrayList 形式的输入,然后将输出准备为报告格式正确的字符串。所以基本上,它从数据生成 CSV。

此外,有人可以指出一些必须遵循的单元测试最佳实践吗?我浏览了各种在线资源,但联系不上太多。

最佳答案

您进行单元测试的方法是以数据为参数,并将其转换为 CSV 的方法。因此,它应该只测试此转换是否有效,并且您应该向其提供最少的必要数据,以验证它在所有情况下确实有效。

此方法应该独立于从数据库获取数据的方法,并且您不应该从数据库获取大量数据来对该方法进行单元测试。只需在内存中准备数据,并将其作为测试中数据转换方法的参数即可:

List<Foo> data = new ArrayList<Foo>();
data.add(createFooA());
data.add(createFooB());
String csv = myTestedObject.transformToCsv(data);
assertEquals("...", csv);

关于java - 如何为返回大数据的方法制作测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com