Maven +EasyMock+Junit 小例子
2016-07-12 15:42
309 查看
easymock 一、创建easyMock1工程,加入easymock与junit依赖;如下图:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>3.4</version> <scope>test</scope> </dependency> </dependencies>
工程结构如下图:
<img src="https://img-blog.csdn.net/20160712170628984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
1.Person为自定义的一个对象
package com.zs.easyMock1; public class Person { private String job; private int age; private String local; public Person(){ job = "Doctor"; age = 30; local = "shanghai"; } public String getJob() { return job; } @Override public String toString() { return "Person1 [job=" + job + ", age=" + age + ", local=" + local + "]"; } public void setJob(String job) { this.job = job; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getLocal() { return local; } public void setLocal(String local) { this.local = local; } }2.PersonTest为对Person建立的junit测试用例
package com.zs.easyMock1; import static org.junit.Assert.*; import org.easymock.EasyMock; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; public class PersonTest { public static Person person; @BeforeClass public static void setUpBeforeClass() throws Exception { //person = new Person(); person = EasyMock.createMock(Person.class); System.out.println("开始测试"); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("结束测试"); } @Before public void setUp() throws Exception { System.out.println("在每个测试方法执行前都会执行的代码段"); } @After public void tearDown() throws Exception { System.out.println("在每个测试方法执行后都会执行的代码段"); } @Test public void testGetJob() { //设置模拟对象的方法及期望方法返回的值 EasyMock.expect(person.getJob()).andReturn("teacher"); //重置该类型对象 EasyMock.replay(person); //junit单元测试 assertEquals("teacher", person.getJob()); //easymock验证该方法 EasyMock.verify(person); //assertEquals("Doctor", person.getJob()); } @Ignore @Test public void testToString() { fail("Not yet implemented"); } @Ignore @Test public void testSetJob() { fail("Not yet implemented"); } @Test public void testGetAge() { //创建模拟类型对象,必须重新创造一个mock,否则会测试失败 person = EasyMock.createMock(Person.class); //设置模拟对象的方法及期望方法返回的值 EasyMock.expect(person.getAge()).andReturn(20); //重置该类型对象 EasyMock.replay(person); //junit单元测试 assertEquals(20, person.getAge()); //easymock验证该方法 EasyMock.verify(person); } @Ignore @Test public void testSetAge() { } @Test public void testGetLocal() { person = new Person(); assertEquals("shanghai", person.getLocal()); } @Ignore @Test public void testSetLocal() { fail("Not yet implemented"); } }测试结果:
相关文章推荐
- oracle基础三 与长字符串根据操作符分割成数组处理函数
- 1使用Struts2
- Extjs 点击复选框在表格中增加相关信息行
- NDK 编译报错:request for member 'FindClass' in something not a structure or union
- 只能在执行 Render() 的过程中调用 RegisterForEventValidation
- 动态规划(三)最长递增子序列
- 安装包评审验证测试
- window JNI_CreateJavaVM启动java程序
- 依赖库Underscore系列(3)-函数
- 字符串逆序输出
- Maven更新父子模块的版本号
- Hex编码字节
- 【NOIP2013模拟11.5A组】游戏节目
- iptables规则的查看、添加、删除和修改
- 【android学习】socket传输中,流的关闭
- bzoj3440: 传球游戏
- 网络流-最小费用最大流
- 多张图片合成加载动画
- xml报错 Parse Fatal Error :在实体引用中,实体名称必须紧跟在'&'后面
- 单链表实现(超简单)