Mockito是一个很流行的mock测试框架。网上已经有很多的例子。我感觉很多例子,比如mock一个List,不具有代表性。这里我选了一个Strategy模式的例子,讲讲Mockito。
例子很简单,Someting构造时需要一个Strategy实例。会调用Strategy的doSomethingConcrete和doValidate方法。
public interface IStrategy { public void doSomethingConcrete(); public boolean doValidate(); } public class Strategy implements IStrategy { @Override public void doSomethingConcrete() {} @Override public boolean doValidate() { return false; } } public class Something { IStrategy strategy; public Something(IStrategy strategy) { this.strategy = strategy; } public void doSomething(){ strategy.doSomethingConcrete(); } public boolean validate() { return strategy.doValidate(); } }
下面我们要用mockito测试Something:
@RunWith( MockitoJUnitRunner.class ) public class TestExample { @Mock Strategy strategy; Something objectUnderTest; @Before public void setUp() { objectUnderTest = new Something(strategy); } @Test public void testSomething() { objectUnderTest.doSomething(); verify(strategy).doSomethingConcrete(); } @Test public void testDelegateSomething() { when( strategy.doValidate() ).thenReturn( true ); boolean isValid = objectUnderTest.validate(); assertTrue( isValid ); } }
测试用例虽短,却包含不少信息。
- 首先,可以使用@RunWith( MockitoJUnitRunner.class ) 告诉JUNIT我们要使用Mockito,而且我们使用了@Mock annotation表明我们要mock strategy的创建。
- 在setup部分我们创建了用于测试的对象(因为这里有多于一个的测试,所以放在setup部分更简洁)。
- 在第一个测试中,我们使用了verify,来验证straegy的doSomethingConcrete被调用。
- 在第二个测试中,我们使用了when,thenReturn来个strategy的doValidate方法调用预设值。这样解释strategy的这个方法实现出错,而返回false,也不会影响我们对于something的测试。这也说明了mock的好处。
更多关于mockito的信息和例子
https://code.google.com/p/mockito/
http://eclipsesource.com/blogs/2011/09/19/effective-mockito-part-1/
相关推荐
《Java测试与设计——从单元测试到Web测试》这一主题深入探讨了软件开发中的关键环节:测试。在软件工程中,测试是确保软件质量、功能完整性和用户满意度的重要步骤。本文将围绕“单元测试”和“Web测试”两个核心...
下面我们将详细探讨Java软件测试的相关知识点,并结合提供的两个压缩包文件名——Calculator.zip和MoreTriangle.zip进行分析。 1. **单元测试**:在Java开发中,单元测试是验证代码模块功能是否按预期运行的基本...
9. **测试与调试**:项目可能涵盖了单元测试、集成测试和性能测试,使用JUnit、Mockito等工具进行。 10. **项目管理与文档**:遵循敏捷开发方法,如Scrum或Kanban,编写详细的设计文档、需求分析、用例图和类图等。...
10. **测试与调试**:JUnit是Java单元测试的工具,Mockito用于模拟对象进行测试。集成测试和性能测试也是项目开发过程中的重要环节。 11. **答辩准备**:论文和答辩PPT的制作是毕业设计的重要组成部分,需要清晰...
9. **测试**:单元测试和集成测试是确保代码质量的关键步骤,JUnit和Mockito等工具可以帮助进行测试。 10. **文档和答辩准备**:论文和答辩PPT需要详尽地阐述项目的背景、目标、设计思路、实现过程以及成果展示,这...
标题中的“Java毕业设计——基于spring boot的在线选房网站设计与实现”表明这是一个使用Java编程语言,并基于Spring Boot框架开发的毕业设计项目。Spring Boot是Spring生态中的一个核心组件,它简化了创建独立的、...
7. **测试与调试**:在开发过程中,单元测试和集成测试必不可少,JUnit和Mockito等工具可以帮助开发者进行测试。同时,使用版本控制系统如Git进行代码管理,便于协作和问题排查。 8. **答辩PPT**:这部分通常会概述...
《敏捷Java测试驱动开发敏捷经典(2)》是关于软件开发方法论中的一种高效实践——测试驱动开发(Test-Driven Development, TDD)在Java语言环境下的应用。TDD是一种编程范式,它强调先编写测试用例,再编写满足这些...
本文将详细介绍Mocks的概念、作用以及如何利用Java中最流行的模拟框架——Mockito进行单元测试。 #### 什么是Mocks? Mocks或者模拟对象是用来模拟复杂的真实对象的行为。当真实对象难以集成到单元测试中时,Mocks...
JUnit、Mockito和Selenium等工具可能用于自动化测试。 9. **部署与运维**:最后,系统的部署和运维也是关键,可能使用持续集成/持续部署(CI/CD)工具如Jenkins,配合版本控制工具Git进行代码管理,使用Nginx或Apache...
JUnit是Java的单元测试框架,而Mockito则可以帮助模拟对象,隔离测试。对于集成测试,Spring Boot Test提供了方便的测试支持,可以模拟完整的应用环境。 总的来说,Java WEB技术在人事管理系统中扮演着核心角色,...
【Java项目——家具销售管理项目】是一个以Java编程语言实现的管理系统,主要目的是为了帮助家具销售企业进行日常的业务管理。这个项目包含了完整的源代码、设计文档、PPT演示以及详细的截图,使得初学者能够通过...
8. **测试与部署**: 开发过程中,单元测试和集成测试是必不可少的,Spring Boot支持JUnit和Mockito等测试工具。部署方面,Spring Boot应用可以被打包成可执行的JAR或WAR文件,部署在云服务器或本地服务器上。 9. **...
《单元测试之道Java版-使用JUnit》是一本深入讲解如何在Java开发中运用JUnit进行单元测试的专业指南。单元测试是软件开发过程中的重要环节,它能够确保代码的正确性、可维护性和稳定性。JUnit作为Java领域最流行的...
JUnit和Mockito等工具可以辅助进行单元测试,验证单个组件的功能;Spring Boot自带的Actuator模块可用于监控系统状态和性能。 最后,答辩PPT可能会涵盖系统的需求分析、设计思路、实现过程和效果展示,强调项目的...
11. **测试与调试**:软件开发中,单元测试和集成测试是必不可少的,JUnit和Mockito等工具可能被用于测试代码。 这个毕业设计项目不仅展示了Java编程技能,还涵盖了网络安全、网络编程和软件工程等多个方面,对提升...
15. **单元测试与持续集成**:JUnit和Mockito等工具的使用,以及持续集成工具如Jenkins的配置和使用,有助于确保代码质量。 通过深入学习这些Java核心知识点,并结合实践,开发者不仅可以提升个人技能,也能更好地...
本章节将介绍一种强大的测试框架——TestNG。与传统的JUnit相比,TestNG提供了更多的灵活性和功能,如参数化测试、组测试以及更复杂的依赖关系管理等。这些特性使得TestNG成为执行单元测试的理想选择之一。 - **...
Java测试是软件开发过程中的重要环节,它确保代码的质量,防止缺陷在生产环境中出现。"java测试的答案与详细讲解"这个资源显然旨在帮助初学者理解并掌握Java编程中的测试技术。CDIO是一种教育理念,强调将构思...
Mockito 是一个流行的Java单元测试框架,它允许开发者模拟(mock)对象的行为,以便在测试中隔离被测试代码。在给定的压缩包文件中,包含的两个核心JAR文件——`mockito-all-2.0.2-beta.jar` 和 `mockito-core-2.7....