首页 > Java > java教程 > 如何使用 Mockito 测试抽象类:分步指南

如何使用 Mockito 测试抽象类:分步指南

Susan Sarandon
发布: 2024-10-30 18:07:03
原创
601 人浏览过

How to Test Abstract Classes with Mockito: A Step-by-Step Guide

使用 Mockito 测试抽象类

抽象类由于缺乏具体的实现而给单元测试带来了挑战。虽然手动创建模拟是一种选择,但它可能既耗时又复杂。

Mockito 提供了一种优雅的解决方案,无需手动创建模拟即可测试抽象类。它的工作原理如下:

  1. 模拟抽象类:

    <code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>
    登录后复制

    通过使用 Answers.CALLS_REAL_METHODS,您指示 Mockito 执行实际的实现非重写方法,允许您测试抽象方法的行为。

  2. 根据需要存根抽象方法:

    对于抽象您想要在测试期间控制的方法,请使用以下语法:

    <code class="java">Mockito.when(mock.methodIDontCareAbout()).thenReturn(null);</code>
    登录后复制

    此存根特定的抽象方法,提供所需的行为。

示例:

考虑以下场景:

<code class="java">public abstract class My {
    public Result methodUnderTest() { ... }
    protected abstract void methodIDontCareAbout();
}

@Test
public void shouldFailOnNullIdentifiers() {
    My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
    Assert.assertSomething(my.methodUnderTest());
}</code>
登录后复制

在此示例中,测试方法中未使用抽象方法 methodIDontCareAbout()。通过使用 thenReturn(null) 来模拟它,您可以在测试过程中有效地忽略它。

这种方法提供了一种简洁便捷的方法来测试抽象类,消除了手工制作的模拟的需要,并促进了非-具体课程。

以上是如何使用 Mockito 测试抽象类:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板