您的位置:首页 > 其它

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");
}

}
测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: