0
見代碼只是吼叫使用泛型時,我應該如何測試EasyMock對象? EasyMock的
我們的通用接口
public interface Repository<INSTANCE_CLASS, INSTANCE_ID_CLASS> {
void add(INSTANCE_CLASS instance);
INSTANCE_CLASS getById(INSTANCE_ID_CLASS id);
}
和單一類
public class Order {
private Integer id;
private Integer orderNumber;
// getter's and setter's
public void equals(Object o) {
if(o == null)
return false;
if(!(o instanceof Order))
return false;
// business key
if(getOrderNumber() == null)
return false;
final Order other = (Order) o;
if(!(getOrderNumber().equals(other.getOrderNumber())))
return false;
return true;
}
// hashcode
}
當我做下面的測試
private Repository<Order, Integer> repository;
@Before
public void setUp {
repository = EasyMock.createMock(Repository.class);
Order order = new Order();
order.setOrderNumber(new Integer(1));
repository.add(order);
EasyMock.expectLasCall().once();
EasyMock.replay(repository);
}
@Test
public void addOrder() {
Order order = new Order();
order.setOrderNumber(new Integer(1));
repository.add(order);
EasyMock.verify(repository)
}
我得到
Unexpected method call add([email protected]):
add([email protected]): expected: 1, actual: 0
at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43)
at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:72)
at $Proxy4.add(Unknown Source)
爲什麼它不按預期方式工作?我該怎麼做才能通過測試?任何解決方法???
@Thomas您的回覆,托馬斯Thans。關於布爾等於確定。你如上所示完成了嗎?我正在使用2.5.2版本 – 2010-03-25 20:03:33
@Arthur我將它改爲2.5.2,它仍然可以在命令行和eclipse中使用。我真的複製了上面寫的所有代碼,並添加了getters和setter。 – 2010-03-25 20:35:38
你說得對。我錯過了平等執行中的一些代碼。公認。相關提示EasyMock支持Generic – 2010-03-25 20:50:07