加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 使用Spock的PowerMock

发布时间:2020-12-14 16:32:42 所属栏目:大数据 来源:网络整理
导读:我有一个带有一些静态方法的类.我需要模拟这些静态方法.我知道PowerMock会这样做,但是我找不到任何能够解释“Spock PowerMock”集成的教程/材料.我更喜欢Spock和Junit,因此这个难题.有没有办法让这两个框架发挥作用?任何帮助都非常感激.示例代码,更是如此.
我有一个带有一些静态方法的类.我需要模拟这些静态方法.我知道PowerMock会这样做,但是我找不到任何能够解释“Spock PowerMock”集成的教程/材料.我更喜欢Spock和Junit,因此这个难题.有没有办法让这两个框架发挥作用?任何帮助都非常感激.示例代码,更是如此.

更新:方法的当前状态

Spock behaving weirdly

解决方法

我也被困在这里一段时间了.搜索了几个小时后,我看到了这个github回购: https://github.com/kriegaex/Spock_PowerMock.

我尝试添加一个PowerMockRule,它实际上使我能够与Spock一起使用PowerMock.我不得不添加这些依赖项.版本为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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读