[英]Groovy unit test for overloaded method
使用 MockFor 如何為重載方法編寫單元測試。
例如
public HttpResponse execute(HttpUriRequest request, HttpContext context)
和
public HttpResponse execute(HttpHost target, HttpRequest request)
我已經寫了:
def responseMocker = new MockFor(HttpResponse.class)
HttpResponse response = responseMocker.proxyInstance()
def requestMocker = new MockFor(HttpUriRequest.class)
def request = requestMocker.proxyInstance()
def contextMocker = new MockFor(HttpContext.class)
def context = contextMocker.proxyInstance();
def clientMocker = new MockFor(HttpClient.class)
clientMocker.demand.execute(request, context) { response }
HttpClientSample client = new HttpClientSample(clientMocker.proxyInstance())
assertEquals response, client.execute(request,context)
上面的這個測試失敗了:
groovy.lang.MissingMethodException: 沒有方法簽名: ....
您需要像這樣指定所需的方法:
mock.demand.execute { HttpUriRequest request, HttpContext context -> ... }
mock.demand.execute { HttpHost target, HttpRequest request -> ... }
這會將所需的方法綁定到適當的重載方法簽名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.