假设我想创建一个包含假Person
类数据的对象,手动它将花费太多时间,而Person
类内部包含Parties
类。
是否有任何简单的方法来使用虚假数据创建Object。
通过使用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;
}
}
答案 0 :(得分:0)
您可以使用java Faker:
def create
@challenge.puns.create!(pun_params.merge(user_id: current_user.id))
redirect_to @challenge
end
使用示例:
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>0.12</version>
</dependency>
答案 1 :(得分:0)
如果您在测试中关注Parties
,则无需创建Person
数据。你可以像这样写:
Mockito.doReturn(new ArrayList()).when(your-mocked-person-object.getParties());
答案 2 :(得分:0)
以下是一些常用于快速测试数据的技巧:
1)创建一个人对象作为基础(手动)。各种测试只需要修改部分数据,例如更改姓氏等等。
2)创建数据生成实用程序,例如FakePersonCreator。它可以使用固定字符串和随机数据的组合。编写一个生成一个人并让测试使用它的函数。
3)使用真实数据作为测试数据。您可以从实际程序运行中记录它,并将其导出到文件中。那你有两个选择:
在测试运行中从文件中读取测试数据
编写一个实用程序,生成构建测试的java代码 数据(人)根据您的数据文件
4)保持大部分测试数据(人)为空。让每个测试只设置需要检查的字段。
5)使用模拟框架(例如Mockito)来模拟测试数据。创建仅返回实际测试所需字段的模拟对象。
答案 3 :(得分:0)
最后,我通过在Java中使用PODAM库而没有手动交互,找到了一个假冒对象数据的解决方案。
我们可以使用Podam库来伪造对象的数据。
<强>依赖强>
int* p2 = new int[10]; // guaranteed to call the replacement in C++11.
<强>代码强>
<dependency>
<groupId>uk.co.jemos.podam</groupId>
<artifactId>podam</artifactId>
<version>7.1.0.RELEASE</version>
</dependency>
参考:PODAM