如何使用 PowerMock 和 Mockito 模拟枚举类的实例?

2023-11-21

我尝试遵循这个非常相似的问题的答案中提供的示例,但它对我不起作用。我收到以下错误消息:

java.lang.IllegalArgumentException: Cannot subclass final class class com.myproject.test.support.ExampleEnumerable
    at org.mockito.cglib.proxy.Enhancer.generateClass(Enhancer.java:447)
    at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217)
    at org.mockito.cglib.proxy.Enhancer.createHelper(Enhancer.java:378)
    at org.mockito.cglib.proxy.Enhancer.createClass(Enhancer.java:318)
    at org.powermock.api.mockito.repackaged.ClassImposterizer.createProxyClass(ClassImposterizer.java:123)
    at org.powermock.api.mockito.repackaged.ClassImposterizer.imposterise(ClassImposterizer.java:57)
    at org.powermock.api.mockito.internal.mockcreation.MockCreator.createMethodInvocationControl(MockCreator.java:110)
    at org.powermock.api.mockito.internal.mockcreation.MockCreator.mock(MockCreator.java:58)
    at org.powermock.api.mockito.PowerMockito.mock(PowerMockito.java:143)

我需要一个简单的模拟实例enum class。我不需要模拟它的任何方法。

这是我要模拟的课程:

public enum ExampleEnumerable implements IEnumerable<ExampleEnumerable> {
    EXAMPLE_ENUM_1("Test Enum 1"),
    EXAMPLE_ENUM_2("Test Enum 2");

    final String alias;

    ExampleEnumerable(final String alias) {
        this.alias = alias;
    }

    @SuppressWarnings({"VariableArgumentMethod", "unchecked"})
    @Override
    public @Nullable
    String getAlias(final @Nonnull IEnumerable<? extends Enum<?>>... context) {
        return alias;
    }
}

我有以下 TestNG 设置:

import static org.powermock.api.mockito.PowerMockito.mock;

@PrepareForTest({ ExampleEnumerable.class})
@Test(groups = {"LoadableBuilderTestGroup"})
public class LoadableBuilderTest {

    private ExampleEnumerable mockEnumerable;

    @BeforeMethod
    public void setUp() {
        mockEnumerable = mock(ExampleEnumerable.class);
    }
}

您需要使用 PowerMockRunner 来运行它

eg.

@RunWith(PowerMockRunner.class)
@PrepareForTest({ ExampleEnumerable.class})
@Test(groups = {"LoadableBuilderTestGroup"})
public class LoadableBuilderTest {
    private ExampleEnumerable mockEnumerable;

    @BeforeMethod
    public void setUp() {
        mockEnumerable = mock(ExampleEnumerable.class);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PowerMock 和 Mockito 模拟枚举类的实例? 的相关文章

  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 我需要什么库才能在 Java 中访问这个 com.sun.image.codec.jpeg?

    我正在用java创建一个图像水印程序 并导入了以下内容 import com sun image codec jpeg JPEGCodec import com sun image codec jpeg JPEGEncodeParam im
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • TypeError:在严格模式 dexie.js 上可能无法访问“调用者”、“被调用者”和“参数”属性

    谁能告诉我当我调用 dexie js 的 count 函数时会发生什么 TypeError caller callee and arguments properties may not be accessed on strict mode
  • 如何在编辑 SASS 文件后在 Chrome 中自动重新加载 css

    我正在尝试在 Chrome canary 中设置映射功能 我按照截图这个答案 主要功能有效 当我检查一个元素时 它会将我指向本地 sass 文件 当我编辑它时 本地文件安全 并且触发 sass watch 但是 即使在开发工具的 常规 选项
  • Flutter 中的控制台消息

    我目前在 Flutter 版本 2 6 0 12 0 pre 406 的主频道中 每次运行应用程序时 我都会在控制台中收到这些奇怪的消息 我只想知道为什么以及它们的含义以及是否可以忽略这些 当我新创建一个应用程序并在不编辑任何内容的情况下运
  • 浏览器对 Angular 材质的支持

    我想在我的下一个项目中使用 Angular Material https material angularjs org 我没有找到任何有关它支持哪些浏览器的文档 有人知道它的内部运作方式以及预期结果吗 据我了解flexcss 属性 例如 I
  • 如何通过迁移手动创建 asp.net 身份表?

    我希望 asp net Identity 表存在于我的数据库中 并且在实际运行 mvc 应用程序并创建用户之前生成相应的代码优先模型 以便我可以针对这些类编写一些逻辑之前 有没有办法可以手动创建这些表 类并进行迁移 如果您想将其手动添加到数
  • Objective c ios中的^是什么意思? [复制]

    这个问题在这里已经有答案了 很抱歉问这么简单的问题 但这些东西很难用谷歌搜索 我在 iOS 中有代码连接到在摄氏温度和华氏温度之间切换的切换开关 但我不知道 1 是什么意思 self celsius 是布尔值 Thanks self cel
  • cgi.FieldStorage如何存储文件?

    所以我一直在尝试原始 WSGI cgi FieldStorage 和文件上传 我只是不明白它如何处理文件上传 起初 它似乎只是将整个文件存储在内存中 我想嗯 这应该很容易测试 大文件应该会堵塞内存 但事实并非如此 不过 当我请求文件时 它是
  • 如何配置 WebStorm 为 KoaJS 提供代码补全?

    目前 WebStorm 报告 KoaJS 的方法未定义 这是一个轻微但持续的烦恼 我在网上搜索过 也搜索过WebStorm的配置对话框 但没有结果 有人将 WebStorm 与 KoaJS 一起使用并且智能感知 代码完成正常工作吗 这是一个
  • 我们如何使用 TriggerDagRunOperator 触发多个气流 dag?

    我有一个场景 其中特定的 dag 完成后需要触发多个 dag 已使用 TriggerDagRunOperator 触发单个 dag 是否可以将多个 dag 传递给 TriggerDagRunOperator 来触发多个 dags 是否可以仅
  • C++ 可变参数模板 AND 和 OR

    可以使用C 11可变参数模板来完成吗 in template
  • 修改jar文件

    我有一个 jar 文件 在 html 文件中用作小程序 我想修改 jar 文件的内容并重建 jar 文件 以便 html 可以与新的 jar 文件一起正常工作 我怎样才能做到这一点 我已经尝试使用 7zip 解压缩 并修改了源代码并创建了新
  • 如何在postgis中创建一个以米为单位的圆?

    我想问一下如何创建一个圆radius 4km 我已经尝试过ST Buffer功能 但它创造了一个更大的圆圈 我通过将其多边形插入新的 kml 文件来查看创建的圆 这就是我正在尝试的 INSERT INTO camera geom circl
  • 为什么我要删除 build/ 目录?

    Flutter Dart Android 新手 在控制台中刚刚做了 C Users lordnull gt flutter help clean Delete the build directory 只是想知道为什么我们要删除项目的构建目录
  • “传递结果失败” - onActivityForResult

    我有一个LoginActivity 用户登录 基本上都是自己的Activity它的主题就像一个对话框 看起来像一个对话框 它出现在一个SherlockFragmentActivity 我想要的是 如果有成功登录 应该有两个FragmentT
  • 将多个 .yml 文件传递​​给 docker-compose

    这里是 Docker 菜鸟 我的 docker 文件夹中有两个文件 docker compose build yml 和 docker compose up yml 以下是两个文件的内容 docker compose build yml v
  • 龙卷风.gen.engine 与tornado.gen.coroutine 的区别

    走过龙卷风 gen文档有人可以帮助我理解tornado gen coroutine和tornado gen engine之间的确切区别 作为龙卷风文档gen engine says 该装饰器类似于协程 但它不返回 Future 和回调参数没
  • 随机路径生成算法

    我想生成一个从矩阵顶部到底部的随机路径 FIDDLE 要求 路径可以蜿蜒 但必须从第一行连接到最后一行 最终 我希望每个路径片段的颜色是随机的 但现在它可以是统一的 我在下面仅使用红色进行了测试 从上到下连接的路径是随机生成的 路径片段显然
  • 使用 Jackson 映射时将默认值设置为空字段

    我正在尝试使用 Jackson 将一些 JSON 对象映射到 Java 对象 JSON 对象中的一些字段是强制性的 我可以用 NotNull 有些是可选的 与 Jackson 映射后 JSON 对象中未设置的所有字段在 Java 中都将为空
  • Visual Studio 2008 的 XML 架构设计器

    VS 2005确实包含 XSD 文件的设计器 在哪里可以找到 VS 2008 的版本 我只找到了预览版VS 2008 测试版 2 我建议不要使用 XML 模式的数据集编辑器 微软从 VS 2005 开始停止支持模式设计器是有原因的 我们对
  • 如何使用 PowerMock 和 Mockito 模拟枚举类的实例?

    我尝试遵循这个非常相似的问题的答案中提供的示例 但它对我不起作用 我收到以下错误消息 java lang IllegalArgumentException Cannot subclass final class class com mypr