当使用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和函数式编程领域还是很陌生。任何帮助将不胜感激。