假设我想为Person
类创建一个带有伪数据的对象,手动的,这会花很多时间,而且Person
类内部包含了Parties
类,有没有简单的方法来创建带有伪数据的对象,通过使用mockito我们可以创建对象,但是手动的伪数据是很困难的。
class Person {
int age;
ArrayList<Parties> parties;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public ArrayList<Parties> getParties() {
return parties;
}
public void setParties(ArrayList<Parties> parties) {
this.parties = parties;
}
}
class Parties {
private int date, month, year;
public int getDate() {
return date;
}
public void setDate(int date) {
this.date = date;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
}
5条答案
按热度按时间u59ebvdq1#
最后,我找到了一个解决方案,通过使用Java中的PODAM库来伪造类中的对象数据,而不需要人工交互。
我们可以使用Podam库为对象伪造数据。
依赖关系
代码
参考:PODAM
zc0qhyus2#
您可以使用Instancio通过一行程序来完成此操作:
这将返回一个已填充的人员,包括嵌套对象和集合。您还可以使用生成器API自定义生成的值:
如果您使用JUnit 5,您还可以将其与
@ParameterizedTest
一起使用:您可以在Instancio user guide中找到更多示例。
https://www.github.com/instancio/instancio
免责声明:我是这个库的作者。
but5z9lq3#
您可以使用java Faker:
示例用法:
项目地点:http://dius.github.io/java-faker/
tmb3ates4#
如果你在测试中关注
Person
,你不需要创建Parties
数据。你可以这样写:qeeaahzv5#
下面是一些常用的快速测试数据的技巧:
1)创建一个人员对象作为基础(手工)。各种测试只需要修改部分数据,如更改姓氏等。
2)创建一个数据生成工具,如FakePersonCreator。它可以使用固定字符串和随机数据的组合。编写一个生成人员的函数,并让测试使用它。
3)使用真实的数据作为测试数据。您可以从实际程序运行中记录数据,并将其导出到文件中。然后,您有两种选择:
4)将大部分测试数据(人员)保持为空。让每个测试只设置它需要检查的字段。
5)使用模拟框架(例如Mockito)来模拟测试数据。创建模拟对象,这些对象只返回测试实际需要的字段。