unit-testing - 替换grails服务中的私有(private)最终静态进行测试

标签 unit-testing grails spock

我有一项服务:

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

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

最佳答案

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

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

更新:由于您的属性是私有(private)的、静态的和最终的,因此在测试期间您将无法对其进行修改。更改来源是唯一的选择。

关于unit-testing - 替换grails服务中的私有(private)最终静态进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787978/

相关文章:

java - 如何在不发送回复的情况下测试异步顶点事件总线处理程序

java - 如何将传递给 Class<T> 参数的 null 与 Mockito 匹配

grails - Grails/Gorm-将域对象与自身1:M相关联

groovy - 在 Groovy 中抑制警告 “Access to field exceeds its access rights”

unit-testing - 使用 ServiceBusTrigger 对 Azure Function 进行单元和集成测试

reactjs - 使用 useEffect() 钩子(Hook)在 Jest 中测试函数

grails - 可为空的Grails hasMany列表

grails - Grails的响应方法以charset = ISO-8859-1输出HTML内容

gradle - Gradle和Spock很少需要运行测试

grails - 在 Intellij IDEA 中调试 Spock 测试