簡體   English   中英

重載方法的 Groovy 單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM