【问题标题】:Calling a feature and passing in javascript variables调用功能并传入 javascript 变量
【发布时间】:2018-09-28 01:11:53
【问题描述】:

一直在尝试解决这个问题,请有人帮忙。
我有一组 5 行,我想让它们可重复使用。
这些行执行“检查事件 XXX 已触发”。
这些行使用“空手道”变量以及“json”命令。
它们的形式是:

* def message = myUtils.grabEvent(karate, myMessageListener)
* json event = message.text
* match event contains { ... some json in here ... }
* json eventPayload = event.payload
* match event contains { ... some payload json in here ... }

如何让这个可重复使用?
我试过了:
(A) 将其全部放入 Javascript 函数中
这失败了,因为我不知道如何在 Javascript 中复制“json”命令
(B) 将其全部放入 .feature 文件并调用它
这失败了,因为我不知道如何将“karate”和“myMessageListener”变量传递到 .feature 文件的参数中。

请问可以将其放入可重用的代码块中吗?

TIA

【问题讨论】:

    标签: karate


    【解决方案1】:

    是的,我建议将其设为可重复使用的功能。请参阅此处的文档:https://github.com/intuit/karate#calling-other-feature-files

    传递参数很简单,看起来像:

    * def result = call read('reusable.feature')
    

    因为默认情况下,“被调用”特性会“继承”调用特性的变量。

    【讨论】:

    • 感谢彼得的快速回复。我不能这样做,因为“myMessageListener”可能在调用代码中被称为其他东西。我可以以某种方式将参数列表传递给 .feature 文件吗?
    • 是的。阅读文档。 call read('reusable.feature') { myMessageListener: '#(somethingElse)' }
    • 谢谢,现在可能已经开始工作了 - 明天会确认并更新这个问题
    • 如果您可以在上面编辑您的答案,我肯定会将其标记为已接受。我认为文档对此并不清楚。上面评论中的引号使它看起来(至少在我看来)变量值将被视为字符串。不过感谢您的帮助,非常感谢。
    • @davidfrancis 我已尽力编写合理的文档,因此我希望像您这样的专家用户提出改进建议:P
    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2020-01-21
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多