【问题标题】:In Spock, how can I test the code inside withTransaction在Spock中,我如何测试withTransaction里面的代码
【发布时间】:2018-09-18 09:14:11
【问题描述】:

在 Spock 中,我如何测试 withTransaction 块? 比如下面这段代码的测试,如何保证MyLookup.withTransaction里面的代码被执行?

then:
1 * MyLookup.findValue(item)

这里是服务类:

class itemService {

    static String lookUpInfo(String item){  
        MyLookup.withTransaction {
            valInfo = MyLookup.findValue(item)
        }
        return valInfo
    }
}   

【问题讨论】:

  • 您是否介意解释一下或者——甚至更好地——展示你正在尝试测试的课程,例如MyLookup?这称为MCVE,对于试图帮助您的人来说非常有帮助,因为这样他们就可以真正重现您的情况,并可能提供有关如何重构代码的解决方案或提示。
  • 你在使用 Grails 吗?
  • 是的。 Groovy Grails。

标签: java unit-testing groovy spock


【解决方案1】:

因此,您可以查看 PowerMock 框架,该框架使您能够测试静态方法,请参阅this 帖子了解如何。

或者,您可以将静态方法调用包装在您自己的类中,并模拟您的包装类以确保调用成功。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2017-11-30
    相关资源
    最近更新 更多