Mockito异常测试实例:
package com.bijian.study; 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; } }
相关推荐
在测试类 `ItemServiceTest` 中,我们使用 `@Mock` 注解创建了一个 `ItemRepository` 的 mock 对象,并使用 `@InjectMocks` 注解创建了 `ItemServiceImpl` 的实例。`@Before` 方法用于初始化 mock 对象。这样,当...
### Mockito 单元测试详解 #### 一、引言 在软件开发过程中,编写单元测试是一种常见的实践方式,用于确保代码质量与功能正确性。然而,在处理复杂的依赖关系时,传统的方法可能会遇到难题,比如当一个类依赖于多...
PowerMock和Mockito是两个非常流行的Java单元测试框架,结合JUnit,它们可以提供强大的测试能力。在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock...
此外,JUnit 提供了异常测试、固定延迟执行、测试套件等高级功能,有助于全面地测试代码。 **Mockito** 是另一个重要的工具,它是一个模拟(Mocking)库,允许开发者在测试中创建并控制对象的行为,尤其是那些难以...
2. **网络请求模拟**:如果登录过程涉及网络通信(如向服务器发送请求验证凭据),我们可以使用Mockito或者OkHttp的MockWebServer来模拟网络响应,确保即使在没有网络连接的情况下也能进行测试。 3. **异步操作**:...
- **主要功能**:本书提供了大量的实例来展示Mockito功能的实际应用,不仅限于文档介绍,还包括如何高效地使用Mockito进行单元测试的方法。 - **应用场景**:适用于JUnit、PowerMock、TestNG等流行单元测试框架。 #...
- **命名测试实例**:使用 `@Parameters` 注解中的 `name` 属性为每个测试实例指定描述性的名称。 - **设置超时**:通过 `@Timeout` 注解指定测试方法的最大执行时间,超过此时间测试将失败。 #### 三、JUnit 规则 ...
本篇文章将深入探讨JUnit4的单元测试实例,帮助你更好地理解和应用这个工具。 一、JUnit4简介 JUnit4相较于之前的版本,引入了注解(Annotation)机制,极大地简化了测试用例的编写。例如,`@Test`注解用于标记测试...
Mock对象是模拟的类实例,它们可以替代真实的依赖,避免在测试中实际调用外部系统或服务。Stub则是预先定义的返回值或行为,用于控制mock对象的响应。当我们使用Mockito创建mock对象时,可以指定它对特定方法调用的...
Mockito 是一个流行的 Java 单元测试框架,它允许开发者创建模拟对象来隔离被测试代码,以便更好地控制测试环境。这个“mockito-sample”项目提供了一个快速示例,展示了如何在 JUnit 测试用例中使用 Mockito。让...
《单元测试实战:TestNG与Mockito应用解析》 单元测试是软件开发过程中的重要环节,它能够确保代码的正确性、稳定性和可维护性。TestNG和Mockito是两个非常流行的Java单元测试工具,它们提供了强大的功能和灵活的...
JUnit支持各种断言方法,用于验证测试代码的预期结果,同时也提供了异常处理和测试分组等功能,便于组织和管理测试用例。 在这个压缩包中,你可能会找到以下内容: 1. PowerMock的核心库:这可能包括`powermock-...
它提供了断言方法来验证代码的预期行为,并支持测试套件、参数化测试、异常测试等多种测试模式。在`android-test-demo`中,JUnit被用来编写针对单个组件或方法的单元测试。 3. **Mockito**:Mockito是一个流行的...
最后,源码可能还包含了单元测试和集成测试的实践,如JUnit和Mockito的使用,这对于确保代码质量和可维护性非常重要。 总而言之,《JAVA项目实例源码》提供了一个全面的学习平台,通过分析和理解这些源码,我们可以...
此外,Junit支持异常测试,通过`assertThrows`或`expected`属性,我们可以测试方法是否抛出了预期的异常类型。这对于验证业务逻辑中的错误处理和边界条件非常有用。 为了组织和管理测试用例,可以创建测试类继承自`...
8. **单元测试与集成测试**:为了确保代码质量,系统应该包含针对各模块的单元测试和对整个流程的集成测试,使用JUnit、Mockito等工具进行测试,确保功能的正确性。 9. **部署与运行**:项目可能使用Tomcat、Jetty...
JUnit支持注解、测试套件、异常测试等多种特性,使得测试代码更加简洁且易于维护。在本书中,读者将学习如何设置断言、创建测试类和方法,以及如何利用JUnit的@Test注解来定义测试用例。 Mockito是一个模拟框架,它...
JUnit和Mockito等工具可以帮助进行测试驱动开发,确保代码质量。 总结起来,股票交易Web系统中的消息实例扮演着至关重要的角色。它们不仅涉及用户交互,还直接影响系统的性能、安全和稳定性。理解并有效利用消息...
这里的测试可能使用了JUnit或Mockito等测试框架,模拟不同的输入和环境条件,对CXF服务的各种场景进行验证。通过测试,开发者可以发现并修复问题,提高服务的质量和稳定性。 在实际应用中,一个典型的CXF结合Spring...