【IT168 技术】easymock并不是功能较多的,在使用easymock时有一些限制需要注意。
(1) Object方法的限制
我们都知道java是一个单根继承体系,Object是所有类的基类。在Object类上有几个基本的方法,easymock是不能改变其行为的:equals(), hashCode()和toString()。
即对于easymock创建的mock对象,其equals(), hashCode()和toString()三个方法的行为时已经固定了点,不能通过Easymock.expect()来指定这三个方法的行为,即使这三个方法是接口定义的一部分。
我们来先看一个例子:
public class Business {
private Service service;
public void execute() {
System.out.println("service.toString() = " + service.toString());
System.out.println("service.hashCode() = " + service.hashCode());
}
public void setService(Service service) {
this.service = service;
}
}
private interface Service {
public String toString();
public int hashCode();
}
private Service service;
public void execute() {
System.out.println("service.toString() = " + service.toString());
System.out.println("service.hashCode() = " + service.hashCode());
}
public void setService(Service service) {
this.service = service;
}
}
private interface Service {
public String toString();
public int hashCode();
}