`
jh108020
  • 浏览: 110181 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Mockito应用

 
阅读更多
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;

public class MockitoDemo {
	@Test
	public void mockitoTest() throws Exception {
		Service service = new Service();
		Dao dao = mock(Dao.class);// 相当于 new一个dao的模拟类
		service.setDao(dao);
		when(dao.update("1", "2")).thenReturn(2);
		Assert.assertEquals(2, service.update("1", "2"));

		// 方法的参数可以匹配任意值,Mockito.anyXXX() 和任意类 Mockito.any(clazz)
		when(dao.update(Mockito.anyString(), Mockito.any(String.class))).thenReturn(3);
		// 不能将确定值和模糊值混搭,这样会报错
		// when(dao.update("3", Mockito.any(String.class))).thenReturn(3);
		Assert.assertEquals(3, service.update("3", "4"));

		// 下面模拟抛异常
		when(dao.update("3", "4")).thenThrow(new RuntimeException());
		Assert.assertEquals(-1, service.update("3", "4"));

		// void方法抛异常
		Mockito.doThrow(new RuntimeException("测试")).when(dao).voidTest();
		try {
			service.voidTest();
		} catch (Exception e) {
			Assert.assertEquals("测试", e.getMessage());
		}

		// 不能模拟抛Exception类
		// when(dao.update("3", "4")).thenThrow(new Exception());

		// 同一方法不能多次模拟抛异常
		// when(dao.update("3", "4")).thenThrow(new NullPointerException());
		// Assert.assertEquals(-1, service.update("3", "4"));
	}
}

class Service {
	private Dao dao;

	public void setDao(Dao dao) {
		this.dao = dao;
	}

	public void voidTest() {
		dao.voidTest();
	}

	public int update(String a, String b) {
		int i = 0;
		try {
			i = dao.update(a, b);
		} catch (Exception e) {
			i = -1;
		}
		return i;
	}
}

class Dao {
	public void voidTest() {
	}

	public int update(String a, String b) {
		return 1;
	}
}



附上maven依赖
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
</dependency>
分享到:
评论

相关推荐

    Practical-Unit-Testing-with-TestNG-and-Mockito_examples

    《单元测试实战:TestNG与Mockito应用解析》 单元测试是软件开发过程中的重要环节,它能够确保代码的正确性、稳定性和可维护性。TestNG和Mockito是两个非常流行的Java单元测试工具,它们提供了强大的功能和灵活的...

    mockito-1.9.5.zip

    3. **在单元测试中的应用**: 在使用Mockito与JUnit进行单元测试时,我们通常会创建一个测试类,包含多个测试方法。每个测试方法专注于测试一个特定的功能点,使用`@Test`注解标记。Mockito 通过 `mock()` 方法创建...

    Mockito-Programming-Cookbook

    - 分析具体的 Spring 测试示例,了解如何在 Spring 应用程序中使用 Mockito 进行单元测试。 通过上述知识点的详细介绍,可以看出 Mockito 不仅是一个强大的单元测试工具,而且在 TDD 和 BDD 中也发挥着重要作用。...

    Junit4.12+mockito

    有了Mockito的文档,开发者可以深入理解和掌握这两个工具的用法,从而编写出更高质量的Java应用程序。在实际工作中,这些工具可以帮助开发者在早期发现和修复错误,提高开发效率,同时也有利于团队协作和代码维护。

    Mockito Cookbook

    Mockito是一款广泛应用于Java开发中的测试驱动开发(TDD)工具,它允许开发者创建和配置模拟对象,以便在测试中隔离代码并验证特定方法的行为。这本书详细介绍了如何有效地利用Mockito来编写整洁、可维护的测试代码...

    Mockito的重要入门资料

    Mockito作为一种流行的单元测试框架,被广泛应用于Java项目的单元测试中。它通过模拟对象来帮助开发者隔离测试中的依赖项,从而使得测试更加聚焦于被测对象本身的行为。因此,掌握Mockito的基本用法及高级特性对于...

    springboot + mockito 使用示例代码-原创

    在本文中,我们将深入探讨如何在Spring Boot项目中有效地使用Mockito进行单元测试。Mockito是一个流行的Java单元测试框架,它允许我们创建和配置模拟对象,以便在测试中隔离我们想要验证的代码部分。结合Spring Boot...

    Mockito入门

    Mockito 是一个流行的Java单元测试框架,用于模拟(或称为mocking)对象,使得开发者可以在不依赖实际外部环境的情况下测试代码。...参考博文链接中的内容,可以找到更多关于Mockito的实际应用和示例。

    mockito以及mockMVC的一些使用案例

    项目文件可能包含了一个简单的Spring Boot应用,其中包含了Mockito和MockMvc的使用示例。文件如`pom.xml`是项目的构建配置,`src`目录下则包含了源代码和测试代码,`target`目录用于存放编译后的类文件,`.idea`目录...

    power mockito学习资料

    但在实际应用中,有时我们需要测试的代码会依赖于静态方法,例如`TestJava.getName()`。由于静态方法是类级别的,无法通过普通Mockito来模拟,这就需要PowerMockito的介入。通过`@RunWith(PowerMockRunner.class)`和...

    spring集成TestNG与Mockito框架单元测试方法

    通过这样的方式,Spring、TestNG和Mockito共同构建了一套完整的单元测试解决方案,能够有效地测试Spring应用中的各个组件,确保代码的健壮性和可维护性。请参考提供的PDF文件以获取更详细的信息和示例代码。

    基于TestNG+Mockito及自动装配注解的Spring MVC集成测试

    在IT行业中,集成测试是确保不同组件协同工作的重要环节,特别是在使用Spring MVC构建大型Web应用程序时。本篇文章将深入探讨如何结合TestNG、Mockito以及Spring的自动装配注解进行有效的集成测试。以下是对这些技术...

    Mockito Cookbook - Packt

    - **主要功能**:本书提供了大量的实例来展示Mockito功能的实际应用,不仅限于文档介绍,还包括如何高效地使用Mockito进行单元测试的方法。 - **应用场景**:适用于JUnit、PowerMock、TestNG等流行单元测试框架。 #...

    Packt Publishing Mastering Unit Testing Using Mockito and JUnit (2014)

    - **使用 Mockito 重构遗留代码**:对于已经存在的代码库,使用 Mockito 可以帮助提高测试覆盖率,并使代码更容易维护。 - **高级 Mockito 特性**:了解 Mockito 提供的一些高级特性,如验证方法调用顺序、设置模拟...

    Mockito常用方法.pdf

    以下将详细介绍 Mockito 的常用方法和应用场景。 Mockito 简介 Mockito 是一个开源的模拟测试框架,用于 isolating 依赖项并使测试更快速、更可靠。Mockito 提供了许多实用的方法来模拟对象的行为,以便在测试中 ...

    mock开发所用到的2个核心JAR

    开发者可以通过这些工具创建健壮的测试代码,确保应用程序的稳定性和可靠性。然而,使用Mockito时也应注意,过度依赖mocking可能会导致测试过于脆弱,难以反映真实环境中的行为。因此,合理地结合使用mocking和实际...

    java UT mockito配套代码

    这个"java UT mockito配套代码"很可能是包含了一些使用Mockito进行单元测试的示例或者模板,用于帮助开发者更好地理解和应用Mockito。 Mockito框架提供了以下核心功能: 1. **模拟对象创建**:在单元测试中,我们...

    powermock-mockito-junit-1.6.2.zip

    在与Mockito和PowerMock结合使用时,JUnit提供了一个执行测试的平台,开发者可以在其中应用mocking和模拟技术来验证代码的正确性。 在下载的压缩包中,可能包含以下内容: - PowerMock-Mockito的jar文件:这些文件...

    【mockito实战】mockito+junit搞定单元测试,包含测试代码及被测试项目

    这个项目可以帮助你更好地理解如何在实际开发中应用这两个工具。通过分析和运行这些示例,你可以学习到如何创建、配置模拟对象,以及如何编写有效的单元测试。 总之,Mockito 和 JUnit 的结合使得单元测试变得更加...

    android-test-book

    《Android测试开发--基于Java编程语言技术体系》 ...Mockito应用与思考 PowerMock框架 Android环境搭建 Android SDK Android Studio Android项目介绍 构建简单的用户界面 启动另一个 Activity Android测试支持库

Global site tag (gtag.js) - Google Analytics