- 浏览: 1051108 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (1355)
- test (75)
- 红茶和绿茶 (1)
- Jave SE (206)
- Oracle (19)
- English (177)
- Log4j (5)
- RIA(Rich Internet Applications) (9)
- Ext Js (6)
- Android (14)
- Logo (0)
- 文字采撷 (287)
- 使用技巧 (92)
- Project Management (22)
- Hibernate (12)
- Struts (5)
- 规则引擎 (1)
- Html & Javasctipt (56)
- Spring MVC (10)
- Maven (17)
- Java Test (17)
- Linux (16)
- Tools (1)
- CV (0)
- Middleware (2)
- HTML5 (2)
- Algorithms (4)
- Web Service (15)
- 留学 (15)
- LADP (5)
- PXCOA (0)
- SysLog (6)
- SSO (3)
- Spring Security (4)
- Spring Batch (1)
- Jmail (1)
- Bible (4)
- Java Thread (5)
- Architect (6)
- github (2)
- Java Swing (12)
- NoSQL (7)
- UML (2)
- 敏捷(Agile) (7)
- Hudson+Maven+SVN (15)
- cloud computing (2)
- Bahasa Indonesia (1)
- jBPM (6)
- 民俗知识 (3)
- Consulting (1)
- Mysql (5)
- SAP (1)
- 微信公众平台接口开发 (3)
- 做生意 (1)
- 西餐 (1)
- Banking (1)
- Flex (0)
- 黄金投资 (1)
- Apache Tomcat 集群 (3)
- Hadoop (7)
- 需求分析 (1)
- 银行知识 (3)
- 产品管理 (2)
- 钢琴Music (3)
- 设计 (3)
- Marketing (2)
- US Life (3)
- 算法 (14)
- BigData (4)
- test红茶和绿茶Jave SEOracleEnglishLog4jRIA(Rich Internet Applications)Ext JsAndroidLogo文字采撷 (0)
- Design Pattern (5)
- NodeJS&AngularJS (9)
- Python (1)
- Spring boot (0)
- ACM (3)
最新评论
-
心往圣城:
微时代-最专业的微信第三方平台。LBS定位导航,微网站,自定义 ...
微信公众平台 /微信公众平台怎么用 -
zhaojiafan:
return ReverseStr1(str.substrin ...
逆转字符串 Write a String Reverser (and use Recursion!) -
zhaojiafan:
public class StringUtils {
p ...
逆转字符串 Write a String Reverser (and use Recursion!)
最近想玩玩JMock。
对着官方文档,想开始写个test case,不过让我郁闷的是官方文档上给的实例代码不完全。算了,自己写个跑跑看了。
1.测试接口:
IHelloService:
2.测试类:
HelloService:
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
对着官方文档,想开始写个test case,不过让我郁闷的是官方文档上给的实例代码不完全。算了,自己写个跑跑看了。
1.测试接口:
IHelloService:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->1 public interface IHelloService {
2
3 /**
4 * @param name
5 * @return hello message
6 */
7 String sayHelloToSomebody(String name);
8
9 }
IMPL:2
3 /**
4 * @param name
5 * @return hello message
6 */
7 String sayHelloToSomebody(String name);
8
9 }
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloServiceImpl implements IHelloService {
2
3 /*
4 * (non-Javadoc)
5 *
6 * @see org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String,
7 * java.lang.String)
8 */
9 public String sayHelloToSomebody(String name) {
10 return "HELLO," + name + "!";
11 }
12
13 }
Test Case:2
3 /*
4 * (non-Javadoc)
5 *
6 * @see org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String,
7 * java.lang.String)
8 */
9 public String sayHelloToSomebody(String name) {
10 return "HELLO," + name + "!";
11 }
12
13 }
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class IHelloServiceTest extends TestCase {
2 private Mockery context = new JUnit4Mockery();
3 private IHelloService helloService;
4
5 /**
6 * @throws java.lang.Exception
7 */
8 @Before
9 public void setUp() throws Exception {
10 // set up
11 helloService = context.mock(IHelloService.class);
12 }
13
14 /**
15 * Test method for
16 * {@link org.hook.jmock.firstcase.HelloServiceImpl#sayHelloToSomebody(java.lang.String)}.
17 */
18 @Test
19 public void testSayHelloToSomebody() {
20 final String message = "HELLO,alex!";
21 final String name = "alex";
22 // expectations
23 context.checking(new Expectations() {
24 {
25 one(helloService).sayHelloToSomebody(name);
26 will(returnValue(message));
27 }
28 });
29 // execute
30 String result = helloService.sayHelloToSomebody(name);
31 // verify
32 context.assertIsSatisfied();
33 assertSame(result, message);
34 }
35 }
OK,跑下测试,green bar...2 private Mockery context = new JUnit4Mockery();
3 private IHelloService helloService;
4
5 /**
6 * @throws java.lang.Exception
7 */
8 @Before
9 public void setUp() throws Exception {
10 // set up
11 helloService = context.mock(IHelloService.class);
12 }
13
14 /**
15 * Test method for
16 * {@link org.hook.jmock.firstcase.HelloServiceImpl#sayHelloToSomebody(java.lang.String)}.
17 */
18 @Test
19 public void testSayHelloToSomebody() {
20 final String message = "HELLO,alex!";
21 final String name = "alex";
22 // expectations
23 context.checking(new Expectations() {
24 {
25 one(helloService).sayHelloToSomebody(name);
26 will(returnValue(message));
27 }
28 });
29 // execute
30 String result = helloService.sayHelloToSomebody(name);
31 // verify
32 context.assertIsSatisfied();
33 assertSame(result, message);
34 }
35 }
2.测试类:
HelloService:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloService {
2
3 /**
4 * @param name
5 * @return hello message
6 */
7 public String sayHelloToSomebody(String name) {
8 return "HELLO," + name + "!";
9 }
10 }
Test Case:2
3 /**
4 * @param name
5 * @return hello message
6 */
7 public String sayHelloToSomebody(String name) {
8 return "HELLO," + name + "!";
9 }
10 }
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloServiceTest extends TestCase {
2 private Mockery context;
3 private HelloService helloService;
4
5 /**
6 * @throws java.lang.Exception
7 */
8 @Before
9 public void setUp() throws Exception {
10 context = new JUnit4Mockery();
11 // 声明针对类进行mock,针对接口则会采用动态代理,不需要声明
12 context.setImposteriser(ClassImposteriser.INSTANCE);
13 helloService = context.mock(HelloService.class);
14 }
15
16 /**
17 * Test method for
18 * {@link org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String)}.
19 */
20 @Test
21 public void testSayHelloToSomebody() {
22 final String message = "HELLO,vivian!";
23 final String name = "vivian";
24 // expectations
25 context.checking(new Expectations() {
26 {
27 one(helloService).sayHelloToSomebody(name);
28 will(returnValue(message));
29 }
30 });
31 // execute
32 String result = helloService.sayHelloToSomebody(name);
33 // verify
34 context.assertIsSatisfied();
35 assertSame(result, message);
36 }
37 }
OK,跑下测试,green bar again...2 private Mockery context;
3 private HelloService helloService;
4
5 /**
6 * @throws java.lang.Exception
7 */
8 @Before
9 public void setUp() throws Exception {
10 context = new JUnit4Mockery();
11 // 声明针对类进行mock,针对接口则会采用动态代理,不需要声明
12 context.setImposteriser(ClassImposteriser.INSTANCE);
13 helloService = context.mock(HelloService.class);
14 }
15
16 /**
17 * Test method for
18 * {@link org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String)}.
19 */
20 @Test
21 public void testSayHelloToSomebody() {
22 final String message = "HELLO,vivian!";
23 final String name = "vivian";
24 // expectations
25 context.checking(new Expectations() {
26 {
27 one(helloService).sayHelloToSomebody(name);
28 will(returnValue(message));
29 }
30 });
31 // execute
32 String result = helloService.sayHelloToSomebody(name);
33 // verify
34 context.assertIsSatisfied();
35 assertSame(result, message);
36 }
37 }
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
发表评论
-
JUnit4概述 (非常好的文章for java unit test)
2012-10-23 15:31 1038JUnit4是JUnit框架有史以来的最大改进,其主要目标 ... -
Weblogic remote debugger java
2012-09-06 15:15 732window version 1, add b ... -
Base code of using Junit and Jmock write unit test case
2012-09-06 15:09 879mock class and mock interface ... -
jMock Cookbook 中文版一
2012-02-07 10:50 1249入门 定义期望 模拟 ... -
[1.18开始更新了北风网&风中叶录制的JUNIT详解-Spring.MVC3.0.WEB框架系列---北风网讲师深入讲解Java编程陷阱及面试指导系列课程(共
2012-02-06 00:05 2[1.18开始更新了北风网&风中叶录制的JUNIT详解 ... -
(来自IBM) JUnit4 与 JMock 之双剑合璧
2012-02-03 15:29 1214引言 单元测试可以保证代码的质量,最大程度降低修复系统 bu ... -
maven+jmock
2012-02-03 13:50 962Maven + jmock + dependency +rep ... -
Junit使用指南及作业规范.pdf (Open-Open)
2012-02-05 23:09 848Junit使用指南及作业规范.pdf http:// ... -
junit示例
2012-02-05 23:10 908junit示例 1.TestCase最 ... -
(来自IBM)单元测试利器 JUnit 4
2012-02-03 15:27 822引言 毋庸置疑,程序 ... -
JUnit三分钟教程 ---- 快速起步
2012-02-05 23:09 849JUnit三分钟教程 ---- 快速起步 JUnit是个好东西 ... -
Junit
2012-02-02 11:16 939第一,junit使用很方便 ... -
Jmock Jar Package
2012-02-02 14:02 815Jmock -
Growing Object-Oriented Software Guided by Tests
2012-02-02 14:02 1008About the Book <script>& ... -
使用MOCK对象进行单元测试
2012-02-01 17:34 1092测试之道 1.出了什么问题? 单元测试的 ... -
教你如何使用JMock来实现孤立测试
2012-02-01 17:03 819JMock是帮助创建mock对 ... -
jmock
2012-02-01 15:19 1483一、介绍 JMock是一个使用模拟对象机制测试Java ...
相关推荐
jMock 2: Java 5 and above. Stable: 2.5.1 Binary JARs (includes the source to let IDEs provide context-sensitive help) Javadocs Unstable: 2.6.0-RC2 Binary JARs (includes the source to let IDEs ...
jMock与jUnit的集成非常紧密,通常我们会在jUnit测试类中使用jMock来模拟对象。以下是一个简单的示例: ```java import static org.jmock.Expectations.*; import org.junit.Test; import org.jmock.Mockery; ...
2. **JMock的核心概念** - **Expectations(期望)**:在测试中定义模拟对象的行为,指定何时以及如何响应方法调用。 - **Matchers(匹配器)**:用于指定方法参数的预期值,如`anyInt()`表示任何整数。 - **...
通过这个文档,开发者可以学习如何创建和配置模拟对象,设置和验证期待,以及如何在JUnit等测试框架中集成jMock。 首先,创建模拟对象通常需要使用`Mockery`类,这是jMock的核心类。开发者可以通过`context.mock...
<artifactId>jmock-junit4 <version>2.8.4 <scope>test ``` 同时,由于JMock与JUnit紧密集成,还需要包含JUnit的依赖。 ### 基本使用 在JMock中,模拟对象通过`mock(Class<T> clazz)`方法创建,然后可以使用`...
4. **组合使用与JUnit**:JMock可以很好地与JUnit等测试框架集成,方便编写和运行测试。 **EasyMock 3.0** EasyMock是另一个流行的模拟框架,它的设计目标是使单元测试变得更加简单。EasyMock 3.0版本引入了一些...
Jmock是一款开源的Java库,它基于JUnit构建,专门设计用来创建和验证对象交互。Jmock2.6是该库的一个版本,它包含了对Java 5及更高版本的支持,提供了一种声明式的方式来定义和验证对象间的交互行为。通过Jmock,你...
- `jmock-junit4-2.6.0.jar`: 这个版本支持JUnit 4,可以方便地与JUnit测试一起使用。 - `jmock-2.6.0-sources.jar`: 这包含源代码,对于理解`jmock`的工作原理和自定义扩展非常有用。 ### 6. 使用jmock进行单元...
6. **与JUnit和其他测试框架集成**:JMock可以无缝集成到JUnit、TestNG等流行的测试框架中,使得测试代码更加简洁和整洁。 7. **面向切面编程(AOP)**:JMock基于Java代理和动态代理实现,这使得它具备面向切面编程...
"JMOCK-2.6.0"是一个专门用于项目测试的工具,它能够与JUNIT等单元测试框架完美结合,为开发者提供更加全面和深入的测试支持。 JMOCK的核心功能在于模拟对象的行为,这在进行单元测试时尤其重要。它允许开发者创建...
2. **定义行为**:通过`expect`方法来设定模拟对象的预期行为,如`context.checking(new Expectations() { { oneOf(mock).myMethod(with(any(String.class))); } });` 3. **执行测试**:在测试代码中使用模拟对象,...
在 JUnit 中,你可以使用 `jmock-junit3` 或 `jmock-junit4` 包,它们提供了一个 JUnit Rule,使得在测试类中使用 JMock 更加方便。 6. **版本信息** 这个压缩包中的 "jmock-1.2.0-jars" 提供的是 JMock 1.2.0 ...
JMock可以与其他单元测试框架如JUnit、TestNG等无缝集成,提供更加全面的测试支持。它也可以与Mockito、PowerMock等其他模拟库一起使用,以应对更复杂的测试需求。 总结来说,JMock是一个强大且灵活的Java模拟工具...
2. **JMock 文档**: `jmock-2.5.1-javadoc.zip` 文件提供了JMock的API文档,程序员可以通过查看这份文档了解如何使用JMock的各种类、方法和接口。Javadoc是一种标准格式,它将源代码中的注释转换为易于阅读的HTML...
4. **验证行为**:在测试结束时,jMock会自动验证模拟对象的所有调用是否符合预设的期望。 jMock 2.6.0-RC2还引入了对Java 8的支持,包括Lambda表达式和新的日期时间API,使得在模拟这些新特性时更加方便。同时,这...
3. **集成测试框架**:jMock 2.4.0更好地支持了JUnit、TestNG等流行的测试框架,让测试集成更为顺畅。 四、使用jMock进行单元测试 1. **创建模拟对象**:使用jMock的`Mockery`类创建模拟对象,并指定需要模拟的...