使用 Mockito 2 模拟最终课程

Mock final class with Mockito 2(使用 Mockito 2 模拟最终课程)
本文介绍了使用 Mockito 2 模拟最终课程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我正在从我目前正在处理的项目中删除 Powermock,因此我正在尝试仅使用 Mockito (mockito-core-2.2.28) 重写一些现有的单一测试.

I'm removing Powermock from the project I'm currently working on, so I'm trying to rewrite some existing unitary test only with Mockito (mockito-core-2.2.28).

当我运行测试时,出现以下错误:

When I run the test, I have the following error:

org.mockito.exceptions.base.MockitoException:

org.mockito.exceptions.base.MockitoException:

无法模拟/监视类 com.ExternalpackagePath.Externalclass

Cannot mock/spy class com.ExternalpackagePath.Externalclass

Mockito 无法模拟/窥探,因为:

Mockito cannot mock/spy because :

  • 最后一节课

我知道这个问题已经被问过了(如何模拟带有 mockito 的 final 类,模拟对象调用 final使用 Mockito 类静态方法),但我没有找到我正在寻找的答案.

I know that this question has already been asked (How to mock a final class with mockito, Mock objects calling final classes static methods with Mockito), but I didn't find the answer I'm looking for.

这是我的代码摘录:

public class MyClassToTest extends TestCase {
    private MyClass myClass;
    @Mock private Externalclass ext;  // This class is final, I would like to mock it

    @Override
    protected void setUp() throws Exception {
        MockitoAnnotations.initMocks(this); // <<<< The exception is thrown here
        ext = Mockito.mock(Externalclass.class);
    }
}

如 Mockito 文档中所述(https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2,§Mock the unmockable),我添加了 org.mockito.plugins.MockMaker 文件.这是我项目的树:

As mentioned in the Mockito documentation (https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2, §Mock the unmockable), I added the org.mockito.plugins.MockMaker file. This is the tree of my project :

  • 项目
    • 源代码
      • com.packagePath.myPackage
        • 我的班级
        • com.packagePath.myPackage
          • myClassToTest
          • 模拟扩展
            • org.mockito.plugins.MockMaker

            我也尝试将资源"放在src"中的目录,在名为test"的子目录中,但结果仍然相同.

            I also tries to put the "resources" directory in "src", in a subdir called "test", but the result is still the same.

            我认为使用 Mockito v2 可以模拟决赛.有人知道这里缺少什么吗?

            I thought that mocking a final was possible with Mockito v2. Does someone have an idea of what is missing here ?

            谢谢!

            推荐答案

            好吧,我发现这里有什么问题,它可能对其他人有用.我的项目树错了,我把org.mockito.plugins.MockMaker直接放到了src"的一个目录mockito-extension"中.这是我现在的树:

            Well, I found what's wrong here, it maybe useful for other people. My project tree is wrong, I put the org.mockito.plugins.MockMaker in a directory "mockito-extension" directly in "src". This is my tree now:

            • 项目
              • 源代码
                • com.packagePath.myPackage
                  • 我的班级
                  • org.mockito.plugins.MockMaker
                  • com.packagePath.myPackage
                    • myClassToTest

                    这篇关于使用 Mockito 2 模拟最终课程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                    本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)