Java 创建一个调用构造函数的模拟
假设我有以下课程:Java 创建一个调用构造函数的模拟,java,unit-testing,easymock,Java,Unit Testing,Easymock,假设我有以下课程: class Person { private String name; private Integer id; public Person(String name){ this.name=name; this.id=random(); } int random() { return new Random().nextInt(); } } 通过使用mockedrandom()方法调用构造函数,可以为Person类创建部分
class Person {
private String name;
private Integer id;
public Person(String name){
this.name=name;
this.id=random();
}
int random() {
return new Random().nextInt();
}
}
通过使用mockedrandom()
方法调用构造函数,可以为Person
类创建部分模拟?
我的意思是这样的:
Person a=EasyMock.createMockBuilder(Person.class)
.withConstructor(String.class)
.withArgs("Albina")
.addMockedMethod("random")
.createMock();
我会采取不同的做法:使用依赖项注入来“插入”随机对象:
public Person(Random rand, String name) { this.random = rand ...
及
然后可以创建类的普通对象;这将使用一个模拟的随机变量
通常,我们会考虑“复杂”的解决方案来测试我们的产品代码。但这是错误的方法:如果你的代码很难测试;然后更改您的代码 多谢各位。有一些解决办法。
public Person(String name) { this(new Random(), name) ...