gpt4 book ai didi

grails - Grails mock 失败

转载 作者:行者123 更新时间:2023-12-02 16:02:09 25 4
gpt4 key购买 nike

我已经编写了一项正在对其进行集成测试的服务。该服务在内部调用外部休息服务并填充值。

服务等级

import org.springframework.web.client.RestTemplate;

class Service {
final static RestTemplate TEMPLATE = new RestTemplate()

def getList() {
final String info = TEMPLATE.getForObject(getHostUrl(), String.class,[:])
return info
}

为了避免实际的外部服务调用,我尝试如下模拟它。
class ServiceIntegrationSpec extends IntegrationSpec {

void testList() {
setup:
List<Employee> list = new ArrayList<>()
list.add(new Employee(id:"123", name: "test1"))
list.add(new Employee(id:"146", name: "test2"))
def clazz = String.class
def url = ""
def emptyMap = [:]
rackService.TEMPLATE.metaClass.getForObject = {String url, Class clazz,
Map emptyMap ->list}

when:
def val = service.getList()

then:
val != null
}
}

使用以下命令运行集成测试:grails test-app integration:时,出现以下错误:
  • 当前作用域已经包含一个可变URL
  • 当前作用域已经包含一个可变的clazz
  • 当前作用域已经包含一个变量emptyMap
  • 最佳答案

    您尝试重命名metaclass方法的变量

    rackService.TEMPLATE.metaClass.getForObject = {String urlParameter, Class clazzParameter,
    Map emptyMap ->listParameter}

    关于grails - Grails mock 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483888/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com