使用RequestFixture for Java的单元测试未考虑为处理程序提供的.uri

时间:2019-04-24 17:06:37

标签: unit-testing ratpack

当使用RequestFixture为我的请求处理程序(ratpack.handling.Handler)编写单元测试时,我注意到没有考虑到fixture.uri(“ / invalidURI”),并且正在处理该请求,就像我调用了正确的一样URI。是否有任何原因导致这种行为?

我正在使用TestNG测试类进行测试

试图在线搜索Java中带有无效URI的RequestFixture示例示例,但找不到任何示例。 因此发布问题

    HandlingResult invalidURIInvocationResult = RequestFixture.handle(new LoginHandler(), fixture -> {
        fixture.responseHeader("Access-Control-Allow-Origin", "*").responseHeader("Accept-Language", "en-us")
                .responseHeader("Accept-Charset", "UTF-8").responseHeader("Content-Type", "application/json")
                .responseHeader("Cache-Control", "no-cache");
        fixture.uri("logininvalid");
    });
    HandlingResult validInvocationResult = RequestFixture.handle(new LoginHandler(), fixture -> {
        fixture.responseHeader("Access-Control-Allow-Origin", "*").responseHeader("Accept-Language", "en-us")
                .responseHeader("Accept-Charset", "UTF-8").responseHeader("Content-Type", "application/json")
                .responseHeader("Cache-Control", "no-cache");
        fixture.uri("login");
    });

正在测试的处理程序将仅处理 POST 方法和/ login URI的任何请求。任何其他请求,例如 GET ,都将导致 405不允许使用方法响应代码。并且,如果请求URI不是 / login ,则预期结果为 404未找到,并且在Postman中进行检查时,API将返回该结果。

为了进行相同的测试,当我使用RequestFixture用两个不同的URI / login / logininvalid 调用处理程序时,我发现两个请求都像我一样处理只是用 / login 调用了。

关于RequestFixture,我在这里缺少什么吗?

如果我犯了一个愚蠢的错误,请原谅我,但是我对Ratpack和函数式编程领域还是很陌生。任何帮助将不胜感激。

0 个答案:

没有答案