当前位置: 首页 > 知识库问答 >
问题:

JUnit5在mocked class中mocking一个类

佟高澹
2023-03-14

我有以下情况:

Class A (test)
    .
    -> Autowired B 
           .
           -> Autowired C

A.method {
    b.method2();
}

B.method2 {
    c.method3();
}

现在我必须测试A.方法()-

@InjectsMock 
A a;

@Mock
B b;

a.method();

当调用b.method2()时,它显然不做任何事情,但我实际上希望它进入b.method2()以最终调用c.method3()。现在c.method3()是我想使用的Mockito.when(c.method3())。返回(1);

这可能吗?如果是,我如何实现这一点?

共有1个答案

何华灿
2023-03-14

当使用单元测试时,您应该认为唯一正在运行的软件就是这个方法。目标是隔离一个零件以分析其行为。

要测试任何类,开发人员必须确保该类的依赖关系不会干扰他的单元测试。

考虑一下这种情况:您调用一个真正的b.method2,它会抛出一个您不期望的异常。如果您的目标是测试这个a.method,如何评估这个案例?

单元测试验证单元的行为。将类视为一个单元。类通常具有外部依赖关系。此类的测试不应使用它们的实际依赖关系,因为如果依赖关系有错误,测试将失败,即使类内的代码可能完全正常。

 类似资料:
  • 我想在同一个类中模拟一个void方法,这个方法正在用mockito测试中。我可以用@spy注释not void方法,然后使用下面的代码返回我想要的数据。 每个依赖项都是用@mock模拟的。

  • Mocking Bird 是一个实时语音克隆项目,可在 5 秒内克隆声音并生成任意语音内容。 特性 支持普通话并使用多种中文数据集进行测试:aidatatang_200zh, magicdata, aishell3, biaobei, MozillaCommonVoice, data_aishell 等 适用于 Pytorch,已在 1.9.0 版本(最新于 2021 年 8 月)中测试,GPU

  • 我想在测试运行完成后使用JUnit5和接口进行一些清理。整个项目使用JUnit Jupiter,不涉及年份。

  • Google Mock的设计灵感来源于jMock和EasyMock,它的作用是帮你快速地做出一个接口的仿制品。如果你的设计依赖其它的类,而这些类还没有完成或非常昂贵(如数据库);如果你要测试你的模块与其它模块是否能正确结合,并想了解其交互过程;那么Google Mock就能帮助你。 Google C++ Mocking Framework (or Google Mock for short) is

  • 问题内容: 是否有理由将多个断言分组: 而不是这样做: 问题答案: 有趣的是,无论有多少失败,它总是检查传递给它的所有断言。如果一切顺利,那么一切都很好- 如果至少有一个失败,您将得到所有错误的详细结果(正确的解决方法)。 最好用于断言概念上属于一起的一组属性。您的第一个直觉将是“我想断言这是一个”。 例 您的特定示例不是最佳用例,因为使用质数和非质数进行检查是彼此独立的-如此之多,因此我建议为此

  • 我一直在查看JUnit5中参数化测试的示例(我是新手),但没有找到我想要的(除非我误解了如何使用它们)。 我遇到的所有示例都使用了诸如字符串、csv文件或methodSource之类的基本类型,但这些类型似乎都不适合我要做的事情。 如有任何帮助,不胜感激。