博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java无死角测试
阅读量:6626 次
发布时间:2019-06-25

本文共 1295 字,大约阅读时间需要 4 分钟。

hot3.png

Mock测试

(1)引入jar包:jmockit-1.0.jar

(2)引入类:

import mockit.Mock;import mockit.MockUp;import mockit.Mockit;

(3)Mock方法:解决被测试代码调用的方法无法在单元测试环境下正常使用的问题。

@BeforeClass    public static void setUpBeforeClass()        throws Exception    {        new MockUp
(){            @Mock            HttpServletResponse getResponse()            {                return new MockHttpServletResponse();            }        };    }        @AfterClass    public static void tearDownAfterClass()        throws Exception    {        //撤销jMock        Mockit.tearDownMocks();    }

以上代码Mock了ServletActionContext#getResponse()方法,在单元测试运行过程中,如果代码中有调用ServletActionContext#getResponse()方法,实际上会调用Mock出来的方法。其中,ServletActionContext是方法提供类,getResponse()是需要调用的方法。

如果需要重复Mock某个方法,一定要先调用Mockit.tearDownMocks()撤销原有的Mock。

注意:如果运行jMock出现下面的错误:

java.lang.IllegalStateException: Native library for Attach API not available in this JRE  

这是由于环境配置的是JRE而不是JDK,JMock正常运行需要配置JDK,方法如下:

Eclipse-->Window-->Preferences-->Java-->Installed JREs

点击“Add”,添加JDK:

测试私有方法

如果某些方法是私有的,常规的测试无法覆盖私有方法,则采用下列方法进行测试:

Method m;TestAction tAction = new TestAction();m = tAction.getClass().getDeclaredMethod("testPrivateMethod");m.setAccessible(true);m.invoke(tAction);

以上代码测试了TestAction的私有方法testPrivateMethod()。

转载于:https://my.oschina.net/bigsloth/blog/187238

你可能感兴趣的文章
【java.lang.UnsupportedClassVersionError】版本不一致出错
查看>>
Ubuntu16.04 安装RabbitMQ
查看>>
javascript游戏引擎
查看>>
JVM Debugger Memory View for IntelliJ IDEA
查看>>
LINUX下GDB反汇编和调试
查看>>
golang fmt格式“占位符”
查看>>
SpringMVC包括哪些组件
查看>>
现代前端开发路线图:从零开始,一步步成为前端工程师
查看>>
elixir 集成ejabberd
查看>>
Oracle绝对值函数
查看>>
mysql 的mgr集群
查看>>
html5播放mp4视频代码
查看>>
032_nginx配置文件安全下载
查看>>
Linux下tomcat修改成的80端口无法访问
查看>>
Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)
查看>>
redis实现对账(集合比较)功能
查看>>
为了好好看球,学霸们用深度学习重建整个比赛3D全息图
查看>>
浅谈持续集成
查看>>
【ZH奶酪】如何用textgenrnn处理中文
查看>>
CentOS双机中Docker下安装Mysql并配置互为主从模式
查看>>