zoukankan      html  css  js  c++  java
  • EasyMock 常见异常

    1.

    java.lang.IllegalStateException: calling verify is not allowed in record state

    含义:不允许在记录状态(record state)调用verify方法。

    发生场景:不小心在调用EasyMock.replay(mockObj)之前,调用了EasyMock.verify(mockObj);

    2.

    java.lang.AssertionError:
    Unexpected method call IDao.search(com.unittest.easymock.iargumentmatchertest.TestEntity@578486a3):
    IDao.search(com.unittest.easymock.iargumentmatchertest.TestEntity@6ebc05a6): expected: 1, actual: 0

    含义:从异常来看,search方法的参数的期待值和实际值不是同一个对象。

    发生场景:在比较方法的入参的时候,一般是使用方法的equals方法来比较对象,如果equals方法没有重写而只是比较是否是同一个对象引用的话,很容易出现这种问题。

    例:

        public void testEntity() {
            ServiceClass serviceClass = new ServiceClass();
            IDao idao = EasyMock.createMock(IDao.class);
            serviceClass.setIdao(idao);
    
            TestEntity testEntity = new TestEntity();
            TestEntity testEntity2 = new TestEntity();
            EasyMock.expect(idao.search(testEntity)).andReturn(2);
    
            EasyMock.replay(idao);
    
            serviceClass.search(testEntity2);
    
            EasyMock.verify(idao);
        }

    解决方法:

    1.重写equals方法

    2.使用EasyMock的Argument Matchers提供的或自定义的方法来比较方法入参。

  • 相关阅读:
    JSP
    Tomcat根据JSP生成Servlet机制解析
    JSON基础
    ATouch 吃鸡开发板原理及功能介绍
    Android触摸touchevent的AB两种方式(TYPE_A,TYPE_B)识别方法
    ubuntu诸软件安装
    linux kernel mini2440 start.S head-common.S 部分注释
    Android USB ADB ATUH 验证包验证流程
    USB协议学习
    Android memory dump
  • 原文地址:https://www.cnblogs.com/niaomingjian/p/5437920.html
Copyright © 2011-2022 走看看