【问题标题】:Is there a built in way to make Karate's pathMatches case insensitive?是否有内置方法可以使空手道的 pathMatches 不区分大小写?
【发布时间】:2020-10-19 19:45:25
【问题描述】:

我正在使用 Karate Netty 来模拟现有服务,以便我们可以更轻松地测试我们与自定义数据的集成。我们刚刚意识到现有服务接受具有不匹配情况的路径(.../api/EndPoint 被视为与 .../api/endPoint 等相同)

有没有办法使用 pathMatches 功能来接受我们发送的任何案例?

【问题讨论】:

    标签: netty karate


    【解决方案1】:

    请注意,您可以编写辅助函数并将它们粘贴在Background 中。像这样的:

    Background:
    * def pathIs = function(x){ return karate.get('requestUri').toLowerCase() == x }
    
    Scenario: pathIs('/foo/bar')
    

    你会错过/path/{params} 的变量自动设置。但重点是 - 您可以使用任何您想要的自定义代码,如果需要,甚至可以使用 Java。

    【讨论】:

    • 我不知道我们是否有标准实现(这是在我之前),但这就是我们的设置方式:我们有一个文件,用于在拨打电话时进行路由。该文件的行如下: 场景:pathMatches ('foo/bar') * call read('fooBar.feature) 场景:pathMatches('foo/bar/two') * call read('fooBarTwo.feature') 正确的文件现在有大约 50 种不同的路由。我想避免使用 || pathMatches('Foo/Bar') 种逻辑。这是否开辟了任何不同的可能性? requestUri 是我可以使用的全局变量吗:场景:pathMatches(pathIs(requestUri)?
    • @ScottMacDonald 你是正确的。对不起,我的不好,匆忙输入的答案。编辑看起来更好吗?
    • 是的,看起来不错。所以我可以在正常的 pathMatches 中使用该函数。时髦。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多