替换grails服务中的私有final static进行测试

时间:2014-09-11 12:53:33

标签: unit-testing grails spock

我有服务:

class VideoService{
    private static final int MAX = 2000
    ...
}

如何更改测试的MAX值?
更新
不改变服务,因为我正在为遗留代码编写测试,所以不想改变服务本身。

1 个答案:

答案 0 :(得分:2)

这假设您使用的是最新版本的Grails。非常简单。

import grails.util.Environment 
...
class VideoBatcherService{
    private static final int MAX = ((Environment.current == Environment.TEST) ? 20 : 2000)
    ...
}

更新:由于您的属性是私有,静态和最终的,因此您无法在测试期间修改此属性。更改源是唯一的选择。