【问题标题】:Can I use "Where" block and helper methods at the same time in spock我可以在 spock 中同时使用“Where”块和辅助方法吗
【发布时间】:2012-02-14 17:35:43
【问题描述】:

我有一个基本上看起来像这样的规范:

def "my example specification"(){
given:"some mocked object which depends on a object created in the where clause"
        def display = mockDisplay()

and:"a activityt"
        def activity = new ConfigActivity(display)
when:
        activity.doStuff()
then:
        1 * display.select()

where:
        dependency << new Dependency()
}


private mockDisplay() {
        def display = Mock(ConfigActivity.Display)
        display.addDependency(dependency)
        return display
}

我了解“mockDisplay()”方法超出了“where”子句的范围。然而,由于一些规范往往会因样板代码而变得相当混乱(不在这个过于简化的示例中),我真的需要一些方法来重用我的“给定”语句,这样做我真的很想利用 Spock “where " 子句也是如此。

这可行吗?还是有其他方法可以解决这个问题?

【问题讨论】:

    标签: unit-testing groovy spock


    【解决方案1】:

    从辅助方法访问数据变量没有神奇的方法,但您可以将其作为方法参数传递。

    【讨论】:

    • 如果我只是将私有 mockDisplay() 方法签名更改为私有 mockDisplay(dependency) 它会工作吗?我会试一试..
    • 你必须同时调整方法声明和调用者。
    • 是的,没错,编译器帮了我一个忙 :)
    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 2019-05-24
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    相关资源
    最近更新 更多