将 PowerMock 与 Spock 结合使用

2023-12-25

我有一个带有一些静态方法的类。我需要模拟这些静态方法。我知道 PowerMock 可以做到这一点,但我找不到任何教程/材料来阐明“Spock + PowerMock”集成。与 Junit 相比,我更喜欢 Spock,因此出现了难题。有没有办法让这两个框架发挥作用?非常感谢任何帮助。示例代码,更是如此。

Update:该方法的现状

史波克行为怪异 https://stackoverflow.com/questions/19509696/spock-behaving-weirdly


我也被困在这里一段时间了。经过几个小时的搜索,我看到了这个 github 存储库:https://github.com/kriegaex/Spock_PowerMock https://github.com/kriegaex/Spock_PowerMock.

我尝试添加一个 PowerMockRule,它本质上使我能够将 PowerMock 与 Spock 一起使用。我必须添加这些依赖项。版本为 1.5.4

   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>

   <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4-rule</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-classloading-xstream</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
    </dependency>

我的班级是这样的:

import org.junit.Rule
import org.mockito.Mockito
import org.powermock.api.mockito.PowerMockito
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.rule.PowerMockRule
import spock.lang.Specification

@PrepareForTest([SomeStaticClass.class])
public class FlightFormSpec extends Specification { 

    @Rule PowerMockRule powerMockRule = new PowerMockRule();

    def "When mocking static"() {
        setup :
            PowerMockito.mockStatic(SomeStaticClass.class)

        when :
            Mockito.when(SomeStaticClass.someStaticMethod()).thenReturn("Philippines!");

        then :
            SomeStaticClass.someStaticMethod() == "Philippines!"
    }
}

这是另一个资源:https://github.com/jayway/powermock/wiki/powermockrule https://github.com/jayway/powermock/wiki/powermockrule

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

将 PowerMock 与 Spock 结合使用 的相关文章

随机推荐

  • R 和 nvblas.dynlib(在 Mac 上)

    我的 mac 上安装了 RCRAN http cran r project org 我还通过安装了 openblashomebrew https github com Homebrew homebrew science blob maste
  • 提交表单后如何将用户重定向到另一个页面?

    我想在 React JavaScript 中提交表单后重定向用户 例如当用户提交他 她重定向到的表单时google com或一些其他 URL 其中包含他 她在输入字段中输入的信息 我创建了一个简单的文件和提交按钮 这是我的示例代码 impo
  • 如何在Word-VBA中跳转到书签并插入文本?

    我正在尝试使用非常简单的Word宏创建一个Word文档 该宏搜索我放置在文本中的书签 然后在该位置添加一个未来 2 周后的日期 但是 当我从模板创建新文档时 我不断收到找不到书签的信息 我已经浏览过很多次了 有时书签在那里 有时它在那里但不
  • NSNumber 到 float 值

    当我转换时NSNumber使用 floatValue 来浮点值 精度上存在差异 例如 我有一个NSNumber myNumber 的值为 2 3 如果我使用 floatValue 将 myNumber 转换为浮点数 则其值变为 2 2999
  • 更新数据库中的记录时出错

    您好 我正在尝试通过我的表单和邮递员提交更新请求 但我在回复中不断收到相同的内容 因为它有效 updated 我的数据库中没有任何变化 这是我的函数 function update Request request Response resp
  • 如何防止暴露 AEM 中的内容层次结构路径?我正在寻找 AEM 级别和调度程序级别的替代方案

    举个例子 你将如何实现 A 将 www mysite com 的点击翻译为 www mysite com en 并 b 将上面的 www mysite com en 翻译为 content mysite en html 这是一个完整的例子
  • 将 Angular2 HTML 和 TypeScript 构建到单个文件

    我正在使用 Angular2 和 TypeScript 构建一个应用程序 大型 它将需要分为许多项目 每个项目将有许多组件 每个组件都有一个 html view css样式表和 ts逻辑 类 我希望每个项目都编译成一个 js文件并复制到将在
  • 获取 Laravel 5.3 中提交按钮的值

    我的页面上有一个表格
  • HTML5 样板、HTML5 重置 CSS 验证

    我正在为我的 Web 项目选择 HTML5 模板 过去几个月我一直在使用 HTML5 Initiliazr 它使用 Boilerplate 但决定重新评估这两个模板 因为我不喜欢 HTML5 Boilerplate 的 CSS 对 W3 C
  • 自动调整大小遮罩在 iOS 中何时生效?

    我有一个笔尖 最初是为 iPhone 应用程序创建的 尺寸为 320x480 并设置了自动调整大小蒙版 以便在其超级视图很大时在各个方向上扩展视图 我现在正在使我的应用程序变得通用 并使用相同的笔尖并将其显示在 iPad 上的页面表中 我的
  • 如何更改ggplot2的scale_fill_brewer中一个值的颜色值?

    我有一个 R 数据框 df 我在 ggplot2 中将其绘制为条形图 并根据数据框中的列进行着色 df type 现在 我正在使用默认的着色模式 scale fill brewer 来指定颜色 如何将黑色分配给一个值 df type 1 并
  • 解析文件名中丢失的字符,就像读取/斜杠字符一样

    计算机上的文件名是这样命名的 quant ph9501001 math9901001 cond mat0001001 hep lat0308001 gr qc0703001 但在 http 链接上文件名是 包括角色 quant ph 950
  • 添加数千个标记 Google Map API V3

    我目前正在组装一个演示应用程序 需要在地图上显示 28 000 个标记 而不使用任何类型的聚类 问题是 将标记添加到地图上花费的时间太长 以至于浏览器崩溃 这是当前的流程 从数据库中检索地图点 包括 LAT 和 LONG 无需进行地理编码
  • 使用 PySide2 从资源 (QRC) 文件导入 QML

    我已将一个简单的 QML 组件 qml MyButton 添加到我的 resource qrc 文件中
  • 如何在 Adob​​e FLEX 中创建“浏览文件夹”对话框?

    有人知道如何在 Adob e FLEX 中创建 浏览文件夹 对话框吗 这可能吗 Thanx 如果它是 Air 应用程序 您可以执行以下操作 var f File new File f addEventListener Event SELEC
  • Ruby on Rails 在资产中查找 css,而不是在 public/stylesheets 中

    我是 Ruby 新手 使用 ruby 1 9 2P180 和 Rails 3 1 0 rc2 我的 my app root public stylesheets screen css 和 application html erb 中有 sc
  • PHP - PDO 获取循环

    我想我在这里失去了理智 这是代码 这是我为了证明这一点而实际尝试做的事情的简化版本 STH DBH gt query SELECT FROM help STH gt setFetchMode PDO FETCH ASSOC while ro
  • Android 运行应用程序内存使用情况

    我们在 Elipse 内存分析工具 在 DDMS 视图中 中看到的堆使用情况 已分配 与 Android 设备上显示的同一应用程序的内存使用大小之间有什么区别 Settings gt Apps gt Running 尽管我积极尝试通过在不需
  • PDF 供下载,而非链接供查看/下载

    我试图做到这一点 以便当您单击 此处下载 时 pdf 文件将下载到用户的桌面 我该怎么做呢 Use the Content Disposition https en wikipedia org wiki List of HTTP heade
  • 将 PowerMock 与 Spock 结合使用

    我有一个带有一些静态方法的类 我需要模拟这些静态方法 我知道 PowerMock 可以做到这一点 但我找不到任何教程 材料来阐明 Spock PowerMock 集成 与 Junit 相比 我更喜欢 Spock 因此出现了难题 有没有办法让