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

使用Spock在Java中截短或嘲弄静态方法

堵浩波
2023-03-14

是否可以用Spock模拟java中的静态方法?我知道模拟静态groovy方法是可能的,但无法使其适用于Java方法。

共有1个答案

施晗昱
2023-03-14

不,你需要PowerMockito。重构类,或者将静态调用包装在受保护的方法中,并将其存根为Spy。

 类似资料:
  • 在helper类的静态方法中调用时,它会抛出一个NPE。我所做的是嘲笑MarkupMaker和它的返回值(一个Markup实例)。最后,我希望调用标记实例的。无论我做什么-的调用都是抛出一个NPE。我找不到任何文档告诉我如何在spock中详细模拟方法调用值。 编辑:我添加了示例。的调用返回null,即使我在spock测试中对其进行了嘲弄。 test.groovy java(执行模拟对象的方法) j

  • 任何帮助都将得到高度赞赏。 提前致谢

  • 但是如果我从ClassUnderTest运行methodUnderTest: 它抛出了一个ClassWithStatic的真实实例,该实例在其实例Method中失败。

  • 正在测试的类: 下面是测试代码。我模拟了测试中的类class,并覆盖了方法getFruits的返回值。但是当我运行mock时,我没有得到预期的mock返回值。Easymock可以将返回值替换为被测试类的方法,如果这些方法是显式模拟的。当我模拟真实的对象方法时,如何获得模拟的返回值。

  • 我正在为类编写一个单元测试,该类如下所示: 我想编写一个简单的单元测试,它将方法存根(这样它就不会实际触发并命中数据库),但它允许我验证调用是否最终执行。Mockito似乎是这份工作的合适工具。 这似乎是一个很好的游戏计划(至少对我来说)。但当我实际编写代码时,在测试方法的第2行(行)出现以下编译器错误: 类型Mockito中的(T)不适用于参数(void)时的方法 我看到Mockito无法模拟返

  • 我试图用Maven在SPOCK groovy框架中测试静态java方法。 下面是java类 下面是groovy中的SPOCK测试 和POM文件片段 我在groovy文件夹中有4个测试用例,3个通过,但是这个静态方法测试给出了错误 我正在运行mvn测试来测试这些junits,我尝试将cglib-nodep的版本从3.1更改为2.2.2,但没有成功。 我在包含jar文件之后签入了java构建路径 我还