首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用泛型时,我应该如何测试EasyMock对象?EasyMock

在使用泛型时,我应该如何测试EasyMock对象?EasyMock
EN

Stack Overflow用户
提问于 2010-03-25 05:16:52
回答 1查看 1.7K关注 0票数 0

请看下面的代码

我们的通用接口

代码语言:javascript
复制
public interface Repository<INSTANCE_CLASS, INSTANCE_ID_CLASS> {

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

}

和单个类

代码语言:javascript
复制
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

}

当我做下面的测试时

代码语言:javascript
复制
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)
}

我得到了

代码语言:javascript
复制
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)

为什么它没有像预期的那样工作?我应该怎么做才能通过测试?是否有任何解决方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-26 03:44:44

我复制了您的代码,并使用EasyMock 2.0在Java1.6中运行它,它工作得很好。我不得不修复一些部分,比如应该是public boolean equalspublic void equals(Object o),但看起来很明显你在你的真实代码中是正确的。你是在使用另一个EasyMock版本,还是我错过了什么?

为托马斯干杯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2511476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档