请求与RESTITO的部分匹配

时间:2014-10-02 13:56:24

标签: java rest testing rest-assured

我是否可以在没有与测试框架RESTITO完全匹配的内容的情况下匹配REST请求内容?可以说我在我的请求中有一个时间戳,但我不想与这个特定值相匹配(我可能不知道它)?

1 个答案:

答案 0 :(得分:3)

如果您的网址符合

http://example.com/api/endpoint?weight=100&timestamp=1413108487

然后您可以进行以下操作:

match(get("/api/endpoint"), parameter("weight", "100"))

它将忽略所有时间戳。如果时间戳是URI的一部分:

http://example.com/api/endpoint/1413108487/bla

然后你可以使用matchesUri()例如:

match(method(Method.GET), matchesUri(new Regexp("/api/endpoint/[0-9]+/bla")))

当然你总是可以写一个custom condition,在那里你可以对你想要的请求进行任何检查并返回一个布尔值,例如:

Predicate<Call> uriEndsWithA = new Predicate<Call>() {
    @Override
    public boolean apply(final Call input) {
        return input.getUri().endsWith("a");
    }
};
whenHttp(server).match(custom(uriEndsWithA)).then(ok());