是否有可能在一个空手道框架的JS文件中有多个JS函数?

问题描述 投票:2回答:2

我需要对JSON响应的结果执行两个操作。那么我们可以在单个JS文件中包含那些不同的操作吗?或者我们是否需要像一个JS文件一样映射一个操作。请帮忙

karate
2个回答
3
投票

我不建议尝试在空手道中创建复杂的JavaScript,它只会导致可维护性问题。如果您真的想要一个具有多个实用程序方法的对象,请使用静态方法编写Java类,并且维护/调试将更加容易。

那就是说,如果你真的坚持 - 看看这个答案:https://stackoverflow.com/a/47002604/143475

但这是我推荐的大多数项目。在一个“常用”功能文件中,定义多个方法,如下所示:

* def now = function(){ return java.lang.System.currentTimeMillis() }
* def uuid = function(){ return java.util.UUID.randomUUID() + '' }

您现在可以像这样调用此功能:

* call read('common.feature')

现在该功能的所有功能都可以使用:

* def time = now()
* def id = uuid()

0
投票

@kmancusi这是我用我的常用函数做common.feature文件的方法,然后下面的my.test.feature显示我如何导入它以在另一个功能中使用它。

common.feature

@ignore
Feature:

Scenario:
  * def now = 
      """
        function() { 
          return java.lang.System.currentTimeMillis() 
        }
      """ 

  * def uuid = 
     """
       function() { 
         return java.util.UUID.randomUUID() + '' 
       }
     """

my.test.feature

Feature: my tests

Background:
  * configure logPrettyRequest = true
  * configure logPrettyResponse = true
  * configure ssl = true

Scenario: basic test

  * def util = call read('common.feature')
  * def sessionId = util.uuid()

  * print sessionId
© www.soinside.com 2019 - 2024. All rights reserved.