Is it possible to have multiple JS functions inside one JS file of karate framework?

后端 未结 2 1417
鱼传尺愫
鱼传尺愫 2020-12-18 11:11

I need to perform two operations on the result of JSON responses.so can we have those different operations inside single JS file? or do we need to have mapping like one JS f

相关标签:
2条回答
  • 2020-12-18 11:31

    I don't recommend trying to create complicated JavaScript in Karate, it just leads to maintainability issues. If you really want an object with multiple utility methods on it, write a Java class with static methods, and it will be much easier to maintain / debug.

    That said, if you really insist - look at this answer: https://stackoverflow.com/a/47002604/143475

    But this is what I recommend for most projects. In one "common" feature file, define multiple methods like this:

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

    You can now call this feature like this:

    * call read('common.feature')
    

    And now all the functions in that feature are available for use:

    * def time = now()
    * def id = uuid()
    
    0 讨论(0)
  • 2020-12-18 11:58

    @kmancusi This is how I did a common.feature file with my common functions and then the following my.test.feature shows how I import that to use it in another 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
    
    0 讨论(0)
提交回复
热议问题