Easymock学习

                               Author:luojie

  1. 1.       Easymock简介

EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。

用于白盒测试,与预期结果不同,才去分析代码。

  1. 2.       Easymock + junit 单元测试

EasyMock采用记录-----回放的工作模式,基本使用步骤:
*         创建Mock对象的控制对象Control。
*          从控制对象中获取所需要的Mock对象。
*          记录测试方法中所使用到的方法和返回值。
*          设置Control对象到“回放”模式。
*          进行测试。
*          在测试完毕后,确认Mock对象已经执行了刚才定义的所有操作。

public class TalkerController {

public Integer getResponseByWord(String word){

/*if(word=="我很生气!"){

return EmotionConstants.very_angry_emotion;

}

else if(word == "我有点生气"){

return EmotionConstants.normal_angry_emotion;

}

else if(word == "我心态平静"){

return EmotionConstants.normal_emotion;

}

else if(word == "我有点开心"){

return EmotionConstants.normal_happy_emotion;

}

else if(word == "我很开心"){

return EmotionConstants.very_happy_emotion;

}else{

return 0;

}*/

return 0;

}

easymock测试类初始化代码:

@Before

public void init(){

calMotion = new CalculateMotion();

talkerMock = EasyMock.createMock(TalkerController.class);

calMotion.setController(talkerMock);}

easymock测试类实现函数getResponseByWord代码:

@Test

public void calTest() throws Exception{

EasyMock.expect(talkerMock.getResponseByWord("我很生气!

")).andReturn(5);

EasyMock.expect(talkerMock.getResponseByWord("我很开心

")).andReturn(1);

EasyMock.replay(talkerMock);

Human a = new Human("我很生气!", 1);

Human b = new Human("我很开心", 1);

calMotion.getHumanList().add(a);

calMotion.getHumanList().add(b);

int total = calMotion.calculateAvgMotion();

System.out.println("total motion:"+total);

Assert.assertEquals(6, total);

}

  1. 3.       easymock + spring + junit4

 easymock测试类关键代码如图所示:

Junit4的测试套件:

@RunWith(Suite.class)

// 指定运行器

@Suite.SuiteClasses({ CalculatorTest.class, ParametersTest.class })

// 指定要测试的类

public class TestAll

{

}

   @RunWith(Suite.class)
   @SuiteClasses(TestAll.class)
   // 除了指定类,也可以指定套件类
   public class TestAll2
   {
   
   }
  1. 4.       Junit主要语法

JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation

* @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所                  有方法执行一次)

* @After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所

有方法执行一次)

* @Test:测试方法,在这里可以测试期望异常和超时时间

* @Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常

* @Ignore:忽略的测试方法

* @BeforeClass:针对所有测试,只执行一次,且必须为static void

* @AfterClass:针对所有测试,只执行一次,且必须为static void

* 一个JUnit4的单元测试用例执行顺序为:

* @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;

* 每一个测试方法的调用顺序为:

* @Before -> @Test -> @After;

  1. 5.       参考网站:

http://jackyrong.iteye.com/blog/1934670(easymock快速入门教程)

http://blog.csdn.net/vking_wang/article/details/9170979(easymock基本语法)

http://blog.csdn.net/u010218617/article/details/10468441(easymock+spring)

http://blog.csdn.net/zhangxin09/article/details/42487319(junit+mockito)

转载于:https://www.cnblogs.com/hkxd-1/p/6044000.html

easymock+junit+spring学习·相关推荐

  1. spring学习笔记06-spring整合junit(出现的问题,解决的思路)

    spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...

  2. Spring学习总结二

    Spring框架的代理与AOP.AspectJ Spring学习总结二 0.在理解什么是AOP之前的一些话 1.什么是AOP 2.AOP的重要概念 3.代理模式 3.1.静态代理 3.2.动态代理 3 ...

  3. Spring学习总结一

    Spring框架IoC与DI思想及应用 Spring学习总结一 1.Spring是什么 2.Spring的优点 2.1.关键概念 2.2.Spring的优点 3.Spring的架构图 3.1.核心容器 ...

  4. Spring学习(一)初识Spring

    本文借鉴:Spring学习(特此感谢!) 一.简介 什么是Spring 定义:Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架,目的为了简化java开发. DI:注入 IOC ...

  5. 【spring学习】03

    [spring学习]03 Spring注解开发 spring集成junit Spring注解开发 spring集成junit

  6. 【spring学习】02

    [spring学习]02 spring快速入门 实例 Spring配置文件 Bean标签的基本配置 Bean标签的范围配置 Spring 依赖注入 Spring引入其他配置文件 spring配置文件总 ...

  7. Spring 学习笔记----->AOP

    Spring 学习笔记----->AOP 代理模式 为什么学代理模式? 因为这就是Spring Aop的底层 代理模式的分类: 静态代理 动态代理 静态代理 生活用的例子: 房东 public ...

  8. Spring学习中使用javaConfig进行配置时出现 has not been refreshed yet错误

    Spring学习中使用javaConfig进行配置时出现 has not been refreshed yet错误 java.lang.IllegalStateException: org.sprin ...

  9. Spring学习第6篇: 基于注解使用IOC

    大家家好,我是一名网络怪咖,北漂五年.相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知Spring重要性,现在普遍都使用SpringBoot来开发,面试的时候SpringBoot原理也 ...

  10. Spring——Spring学习教程(详细)(上篇)——IOC、AOP

    本文是Spring的学习上篇,主要讲IOC和AOP. Spring的JDBCTemplete以及事务的知识,请见下篇. Spring--Spring学习教程(详细)(下篇)--JDBCTemplete ...

最新文章

  1. 如何使用 Python 或 Bash动态生成 Jekyll 配置文件
  2. Java 8 类型转换及改进
  3. iOS 新窗口在最上层
  4. 《疯狂Java讲义》8
  5. 2招按摩轻松解除黑眼圈 - 健康程序员,至尚生活!
  6. 五分钟快速理解 Reactor 模型
  7. [2011山东ACM省赛] Identifiers(模拟)
  8. 计算机科技与技术对应岗位,计算机技术与软件专业技术资格名称及岗位基本任职条件...
  9. 深入剖析:Super Jumping! Jumping! Jumping! (动规)
  10. 字符串的索引 切片 步长 反步长 , 字符串的常用方法 格式化输出
  11. api 读内存整数_10万+QPS 真的只是因为单线程和基于内存?
  12. System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 1628
  13. 半导体——本征半导体、杂质半导体、PN结
  14. 毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介
  15. 三电极体系电化学测量模组
  16. [作业]习题2-2 韩信点兵(hanxin)
  17. 【省选模拟】西行(FWT)
  18. 决策树算法的 MATLAB 实践
  19. 本题计算人体的 BMI BMI =体重÷身高的平方
  20. Android 悬浮按钮的简单实现

热门文章

  1. 新年新起点-荣获2011年度Silverlight方向Microsoft® MVP奖
  2. 用Java操作Office 2007
  3. 驗證類javascript
  4. MyEclipse—如何在MyEclipse中创建servlet3.0
  5. 最严格的身份证校验(Java版)
  6. SpringBoot 整合 liquibase
  7. mysql创建有参数的函数,7-3:MySQL 创建不带参数的自定义函数
  8. 谁设计python_如果你有设计师朋友,请对TA好一些...
  9. redis数据类型-字符串
  10. .net session 有效时间_【面试题】|干货!.NET C# 简答题Part 07