Java 在使用泛型时,我应该如何测试EasyMock对象?轻松的

Java 在使用泛型时,我应该如何测试EasyMock对象?轻松的,java,unit-testing,generics,easymock,Java,Unit Testing,Generics,Easymock,见下面的代码 我们的通用接口 public interface Repository<INSTANCE_CLASS, INSTANCE_ID_CLASS> { void add(INSTANCE_CLASS instance); INSTANCE_CLASS getById(INSTANCE_ID_CLASS id); } 当我做下面的测试时 private Repository<Order, Integer> repository; @Befor

见下面的代码

我们的通用接口

public interface Repository<INSTANCE_CLASS, INSTANCE_ID_CLASS> {

    void add(INSTANCE_CLASS instance);
    INSTANCE_CLASS getById(INSTANCE_ID_CLASS id);

}
当我做下面的测试时

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)
}

为什么它不能像预期的那样工作???我该怎么做才能通过考试???有什么解决方法吗?

我复制了您的代码,并使用EasyMock 2.0使用Java 1.6运行了它,效果很好。我必须修复一些部分,比如
public void equals(Object o)
,它们应该是
public boolean equals
,但很明显,您在实际代码中使用了它。 你使用的是另一个EasyMock版本还是我错过了什么

干杯
托马斯

@Thomas Than谢谢你的回答,托马斯。关于布尔等于。您是否已完成上述操作?我使用的是2.5.2version@Arthur我将其更改为2.5.2,它仍然可以从命令行和eclipse中使用。我真的复制粘贴了上面写的所有代码,并添加了getter和setter。你是对的。我在equals实现中遗漏了一些代码。认可的。很高兴知道EasyMock支持Generic@Arthur谢谢为了更好的可读性,我推荐Mockito()。它是EasyMock的一个分支,在默认包中包含EasyMock类扩展。
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(br.com.smac.model.domain.Order@ac66b62):
    add(br.com.smac.model.domain.Order@ac66b62): 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)