java阿婆点菜系统_Java无死角测试

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()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值