Java 为测试目的创建许多对象

Java 为测试目的创建许多对象,java,spring,object,testing,mocking,Java,Spring,Object,Testing,Mocking,我想知道,对你来说,什么是创建大量对象的最佳方式 我给你举个例子。 我想模拟50产品,产品是一个具有字段字符串名称和整数价格的类 public class StuffTO { String category; String name; String price; String qty; } 我不需要特定的名称或价格,它们可以是随机的 现在我想知道哪种方法是创建50个随机产品的最好方法,尽可能少编写代码 创建公共列表(最终整数金额){ public

我想知道,对你来说,什么是创建大量对象的最佳方式

我给你举个例子。 我想模拟50产品,产品是一个具有字段字符串名称和整数价格的类

 public class StuffTO {

     String category;
     String name;
     String price;
     String qty;
 }
我不需要特定的名称或价格,它们可以是随机的

现在我想知道哪种方法是创建50个随机产品的最好方法,尽可能少编写代码

创建公共列表(最终整数金额){
public List<StuffTO> create(final int amount){
    final Random random = new Random();
    final List<StuffTO> list = new ArrayList<>();
    for(int i=0;i<amount;i++){
        list.add(new StuffTO("cat"+random.nextInt(100), "name"+random.nextInt(100), "price"+random.nextInt(100), "qty"+random.nextInt(100)));
    }
    return list;
}

class StuffTO {
    String category;
    String name;
    String price;
    String qty;

    public StuffTO(){

    }
    public StuffTO(String category, String name, String price, String qty) {
        this.category = category;
        this.name = name;
        this.price = price;
        this.qty = qty;
    }

}
最终随机数=新随机数(); 最终列表=新的ArrayList();
对于(inti=0;i有一个的Java实现,它具有用于生成测试数据的API

基本上,QuickCheck是关于数据生成器的。QuickCheck runner方法只是循环实现的一种幻想。QuickCheck可以在必须测试整个测试用例类的场景中提供帮助,并且不可能为所有不同的测试场景编写测试

还有JFixture,可在上获得并发布到。 这仍在积极开发中,功能请求正在得到满足

JFixture是一个Java库,用于帮助编写单元测试,特别是在测试驱动开发之后。它基于“约束非确定性”概念生成类型,这是生成值xUnit测试模式的实现

List stuff=newarraylist;
列表类别={“类别1”、“类别2”、…};
列表名称={“名称1”、“名称2”和..};
标价={“价格1”、“价格2”、…};
列表qtys={“qty1”、“qty2”、…};

对于(int i=0;i您可以在循环中创建随机对象(例如代码中的50个)并将其存储在任何集合中(例如代码中的Arraylist)。代码将根据您给定的限制运行,并创建对象并将其存储在Arraylist中

int i=0;
ArrayList<StuffTO > TestList= new ArrayList<StuffTO >();
while(i<50) {

    TestList.add(new StuffTO ( "aa"+i, "bb"+i, "cc"+i, "dd"+i));

i++;
}
inti=0;
ArrayList TestList=新的ArrayList();

while(iA用于循环和
随机
。如果您想要“整数价格”,则将
字符串价格
更改为
整数价格
(也许双精度更好)另外,
qty
应该是int或short。我在Groovy中为此编写了一个实用程序-我没有用Java POJO测试过它,但它可能会为您寻找的东西提供一些想法。默认构造函数的用途是什么?已经习惯了,因为有些包(gson、jackson)需要默认构造函数来自动映射pojo。为了安全起见。我不知道这个对象还需要做些什么…这不是一个很好的方法。用户必须编写200(或204…)个字符串,而且它也没有编译。正确。添加所需的构造函数,只是为了得到更完整的答案,就可以了(即使它不是“随机的”),但我想这并不重要。)我也会为
使用一个
,但这是一个品味的问题:)我想使用一些框架,这是因为我不想在我的项目中添加任何无用的实用程序类..我尝试使用ekostadinov建议的Jfixture,效果很好!而且它允许我定义一个值范围。。。
int i=0;
ArrayList<StuffTO > TestList= new ArrayList<StuffTO >();
while(i<50) {

    TestList.add(new StuffTO ( "aa"+i, "bb"+i, "cc"+i, "dd"+i));

i++;
}