`
hyjun
  • 浏览: 51486 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用EasyMock辅助JUnit测试

    博客分类:
  • J2EE
阅读更多

由于JUnit很难操控外部环境的资源,如数据库、网络、Servlet引擎;通过MOCK对象就能模拟外部环境的资源,从而保证JUnit的正常运行。

其中EasyMock是一套简单的生成MOCK对象类库,用它可以非常容易的辅助JUnit完成单元测试;如下:

 

public class UseMock {

 @Test
 public void testMock() {
  HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
  request.getParameter("ffff");
  EasyMock.expect(request.getParameter("ffff")).andReturn("33333");
  EasyMock.expect(request.getRealPath("/")).andReturn("fffffffff").anyTimes();
  //EasyMock.expectLastCall().andReturn("ffff").times(1);
  EasyMock.replay(request);
  System.out.println(request.getRealPath("/"));
  System.out.println(request.getRealPath("/"));
  EasyMock.verify(request);
 }
}

 

 

分享到:
评论
5 楼 JohnnyJian 2009-02-24  
daquan198163 写道
JohnnyJian 写道
daquan198163 写道
推荐 mockito:simpler & better mocking
http://code.google.com/p/mockito

我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。

哦?你的意思是那个groovy的mock框架也适合用来测java?
这我倒是没想到

是的,gmock与groovy官方的解决方案——MockFor类——最大的不同就是gmock可以用来测java代码(当然,更简洁的语法也是一个不同点)。
4 楼 daquan198163 2009-02-24  
JohnnyJian 写道
daquan198163 写道
推荐 mockito:simpler & better mocking
http://code.google.com/p/mockito

我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。

哦?你的意思是那个groovy的mock框架也适合用来测java?
这我倒是没想到
3 楼 JohnnyJian 2009-02-23  
daquan198163 写道
推荐 mockito:simpler & better mocking
http://code.google.com/p/mockito

我个人觉得建立在静态语言上的DSL很难比建立在动态语言上的来得更简洁。
2 楼 daquan198163 2009-02-23  
推荐 mockito:simpler & better mocking
http://code.google.com/p/mockito
 //you can use flexible argument matchers, e.g:
 when(mock.someMethod(anyString())).thenReturn(10);

 //setting exception to be thrown:
 when(mock.someMethod("some arg")).thenThrow(new RuntimeException());

 //you can set different behavior for consecutive method calls.
 //Last stubbing (e.g: thenReturn("foo")) determines the behavior of further consecutive calls.
 when(mock.someMethod("some arg"))
  .thenThrow(new RuntimeException())
  .thenReturn("foo");
1 楼 JohnnyJian 2009-02-23  
Gmock可以提供更加简洁的语法:
void testMock() {
	HttpServletRequest request = mock(HttpServletRequest) {
		getParameter("ffff").returns("33333")
		getRealPath("/").returns("fffffffff").stub()
	}
	play {
		println request.getParameter("ffff")
		println request.getRealPath("/")
		println request.getRealPath("/")
	}
}

相关推荐

    powermock-easymock-junit-1.5.4.zip

    5. 使用JUnit的@Test注解编写测试用例,运行测试。 总的来说,PowerMock、EasyMock和JUnit的组合为Java开发者提供了一个强大的单元测试工具链,使得即使在面对复杂和难以测试的代码时,也能确保软件的质量和可靠性...

    powermock-easymock-junit-1.6.1.zip

    在"powermock-easymock-junit-1.6.1.zip"中,这些工具已经集成在一起,方便开发者同时利用PowerMock和EasyMock的能力来编写JUnit测试。 在实际应用中,我们通常会按照以下步骤进行: 1. 引入PowerMock和EasyMock的...

    Junit+EasyMock单元测试使用资料以及案例分析

    我们可以通过以下步骤使用Junit和EasyMock进行单元测试: 1. **创建模拟对象**:使用`EasyMock.createMock()`创建`UserRepository`的模拟对象。 2. **录制行为**:设置模拟对象在调用`getUserById()`方法时返回预设...

    easymock selenium junit

    然后,使用JUnit编写测试用例,覆盖各个功能点。最后,通过Selenium将这些测试扩展到实际的浏览器环境中,验证用户界面的交互和响应。 在"学习总结"这个文件中,你可能找到了关于如何集成和运用这三个工具的笔记,...

    Junit+EasyMock单元测试的jar包

    Junit和EasyMock是Java开发中广泛使用的两个工具,它们协同工作,帮助程序员高效地进行单元测试。 Junit是一个开源的Java测试框架,主要用于编写和运行面向对象软件的测试案例。它提供了断言方法来验证代码的行为,...

    生成junit测试类

    综上所述,这篇博文可能探讨了如何使用EasyMock和PowerMock这些工具来生成和增强JUnit测试类,帮助开发者编写更加高效和全面的单元测试。通过这些技术,可以更好地控制测试环境,确保代码的质量和可靠性。

    easyMock resource

    这时,我们可以使用EasyMock创建B的mock对象,设置其返回值或抛出异常,然后在JUnit测试中使用这个mock对象代替真实的B,从而专注于测试类A的行为。 在文件名称列表`testFromwork`中,可能包含了相关的测试代码示例...

    转:EasyMock 单元测试

    在实践中,结合使用 EasyMock 和其他测试工具,如 JUnit 或 TestNG,可以帮助开发者构建出强大而健壮的测试套件,从而提升软件质量。记住,良好的单元测试不仅仅是找出问题,更是预防问题的发生。通过使用 EasyMock...

    模拟测试辅助工具easyMock.zip

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较...

    easymock 3.0

    通过在JUnit测试类中引入Easymock,你可以创建mock对象并在测试方法中使用它们。 下面是一些使用Easymock 3.0和JUnit进行单元测试的关键知识点: 1. **创建Mock对象**:使用`EasyMock.createMock()`方法创建mock...

    easymock的使用,含demo

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...

    easymock测试servlet

    在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...

    PowerMock+Mockito-junit测试套件1.6.3版本

    在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock** PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法...

    easyMock.zip

    当我们使用EasyMock创建的模拟对象时,可以在Junit的测试方法中调用它们,然后用断言检查这些模拟对象的行为是否符合预期。 此外,EasyMock还有扩展,如EasyMock Class Extension,它可以自动管理模拟对象的生命...

    EasyMock单元测试例子

    8. **最后的清理**:在测试结束时,使用`EasyMock.reset(mockObject)`清除模拟对象的状态,以便于下一次使用。 通过"EasyMock单元测试例子"中的代码,我们可以深入学习如何设置和使用这些特性。每个示例都会包含...

    easymock3.1 jar包和powermock1.4.10 jar包(以及附带junit jar包)

    总结一下,Easymock3.1和PowerMock1.4.10是Java单元测试的重要工具,它们与JUnit配合使用,可以帮助开发者对各种复杂情况进行精确的测试,提高代码质量。在实际项目中,正确地使用这些库可以大大提升测试的覆盖率和...

    junit4.4.jar +easymock3.0.jar

    将这两个库结合使用,开发者可以在进行单元测试时,利用JUnit来组织和执行测试,而使用EasyMock来模拟复杂的依赖关系,使得测试更加独立和可控。通过这种方法,开发者可以专注于测试单个方法或组件,而不必担心外部...

    EasyMock

    在进行单元测试时,EasyMock与JUnit、TestNG等测试框架结合使用,可以提供更完善的测试解决方案。它简化了对依赖对象的管理,让测试更加专注和可控。 至于压缩包中的“面试经典.pdf”和“笔试题集.pdf”,这些可能...

    test-easymock:带有简单模拟的简单测试

    - **测试类**:每个源代码类通常对应一个或多个测试类,这些测试类使用Easymock创建模拟对象并编写测试用例。 - **配置文件**:可能包含构建工具(如Maven或Gradle)的配置,用于编译和运行测试。 - **README**:...

Global site tag (gtag.js) - Google Analytics