gpt4 book ai didi

java - 为单元测试创​​建数据样本列表

转载 作者:行者123 更新时间:2023-12-01 17:44:03 25 4
gpt4 key购买 nike

我正在尝试为一个方法创建一个单元测试,该方法将 arrayList 作为输入,并返回不同的 arrayList 作为输出。

根据我对单元测试的理解,我需要制作数据然后断言它们是正确的,但是创建一个具有足够大小以满足方法要求的 arrayList 似乎很复杂。

待测试的方法

public static List<String> processList(List<String> input){
//process array
return new ArrayList<String>();//return new list with new/modded data
}

我可以做类似的事情

ArrayList<String> inputList = new ArrayList();
inputList.add("data1");
...
inputList.add("data30");

或者编写一些生成假数组的代码

for(int i=0;i<30;i++){
inputList.add("data"+i);//actual code will be slightly more complicated
}

但是我需要几行来进行一些计算和变化,因为数据并不像我在这个问题中显示的那么简单。

第一个解决方案将占用大量空间,第二个解决方案似乎需要对其进行测试,因此违背了单元测试的目的。

我还考虑将数组元素保存在项目可访问的文本文件中,对于每种输入类型,我将访问所需的文本文件并将行转换为数组。

基本上,如何创建多个大约包含 10-30 个元素的数组,以对单个方法进行单元测试,该方法采用单个数组输入而不造成困惑?

最佳答案

如果您希望测试断言多个输入,那么您需要为每个单独的测试输入提供预期结果。对于 junit,这通常使用 parameterized tests 完成。 .

如果您担心测试数据会使您的测试代码变得臃肿,那么请对 fixtures 进行编码放入文件中可能是个好主意,一些库如 json fixtures可能有帮助。

您的问题还表明您希望生成测试用例,我认为这接近 Random testing 的概念.

关于java - 为单元测试创​​建数据样本列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706613/

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