【问题标题】:How to use instance variable in where section of Spock Test如何在 Spock 测试的 where 部分使用实例变量
【发布时间】:2014-05-07 13:58:22
【问题描述】:

Spock 只允许从 where 块访问静态变量。

是否有任何解决方法使用可以在 where 块中使用哪些实例变量?

【问题讨论】:

  • 你有你想要做什么的代码示例吗?
  • 没有允许在 where 块中使用实例变量的解决方法。可能有办法解决你更大的目标,但你必须解释它。
  • @PeterNiederwieser - 我试图声明一个字段的抽象 getter,以便派生类必须声明变量,我想在 where 块中访问这个变量的字段。如果我在派生类中声明变量它不起作用,但是我找到了一种解决方法,我没有在派生类中声明变量,而是在 getter 中声明并返回匿名对象。

标签: spock


【解决方案1】:

您可以使用@Shared 注释实例变量,请参阅Spock 手册,章节"Sharing of Objects between Iterations"

注意:共享实例变量将在迭代之间保留其值并在方法之间共享。如果您不想这样做,请不要使用该方法。但据我了解,无论如何,您在 where 块中使用表左右初始化变量值,所以应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2020-11-29
    相关资源
    最近更新 更多