我有一个定义为EmployeeBase.java的实体类,它有200个setter方法和200个为这些方法声明的私有变量。
我有一个Employee.java,它扩展了基类EmployeeBase.java,它也有很少的字段。
现在我想为Employee.java中的所有字段创建Random值并返回Employee对象。
我不确定如何设置Employee和基类中存在的setter的所有值。
请帮帮我。
感谢。
答案 0 :(得分:0)
有些库的目标是减少创建Junit测试的时间和精力,例如Podam和Easytest。为简单起见,我喜欢在我的测试中使用Podam。
将Podam依赖项添加到您的pom.xml
<dependency>
<groupId>uk.co.jemos.podam</groupId>
<artifactId>podam</artifactId>
<version>7.0.5.RELEASE</version>
</dependency>
写你的豆子:
2.1。的 People.java 强>
public abstract class Peopple {
private String name;
private String mail;
private List<String> phones;
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getMail() {return mail;}
public void setMail(String mail) {this.mail = mail;}
public List<String> getPhones() {return phones;}
public void setPhones(List<String> phones) {this.phones = phones;}
}
2.2。的 Course.java 强>
public class Course {
private String code;
private String name;
public String getCode() {return code;}
public void setCode(String code) {this.code = code;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
@Override
public String toString() {
return return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
}
}
2.3。的 Student.java 强>
public class Student extends Peopple {
private Course course;
public Course getCourse() {return course;}
public void setCourse(Course course) {this.course = course;}
@Override
public String toString() {
return return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
}
}
使用Podam填充你的bean:
public class PodamDataGenerator {
public static void main(String[] args) {
PodamFactory podamFactory = new PodamFactoryImpl();
//Limit number of elements to collections fields
podamFactory.getStrategy().setDefaultNumberOfCollectionElements(2);
Student student = podamFactory.manufacturePojo(Student.class);
System.out.println("Podam Pojo\n-----------\n " + student);
}
}
输出
Podam Pojo
-----------
Student[course=Course[code=Dr0zgS5ZKw,name=ZrGJ8xAcJQ],
name=nB6zy558W5,mail=DuW6YyLgo3,phones=[Wlc7axk_A7, nQxDmUlukY]]
希望这有帮助!