Groovy模拟HTTP请求的简便方法

时间:2016-07-31 12:05:13

标签: groovy spock

我有非常简单的连接器连接到rest API:

class ApiConnector {
   def url

   ApiConnector(url) {
      this.url = url
  }

  def get(enpointName) {
    "$url/$endpointName".toUrl().text
  }
}

我的问题是我希望通过一些模拟输出对get方法进行单元测试。我想用Spock做这件事但不知道我究竟能如何做到这一点。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

普通元编程有什么问题?

URL.class.metaClass.getText = { 'test text' }

'test text' == "http://stackoverflow.com".toURL().text

答案 1 :(得分:0)

您可以手动在测试中模拟此方法。 Examle:

ApiConnector.metaClass.get = {endpoint -> "Return some mock data for this ${endpoint}"}

如果你调用方法获得你得到的模拟值。换句话说,你可以使用一些模拟库。