Karate 如何直接获取空手道特征文件中java类的静态变量值

Karate 如何直接获取空手道特征文件中java类的静态变量值,karate,Karate,我有一个java类,它拥有应用程序所需的所有URL。我想在功能文件中访问此项。我知道可以通过创建get方法来访问它 * def Config = Java.type('App.Config') * def stageEndPoint = Config.getStageEndPoint() 可以直接获取吗?您可以编写一个karate-config.js文件,其URL如下所示 function() { return { baseUrl: 'http://192.168.0

我有一个java类,它拥有应用程序所需的所有URL。我想在功能文件中访问此项。我知道可以通过创建get方法来访问它

 * def Config = Java.type('App.Config')
 * def stageEndPoint = Config.getStageEndPoint()

可以直接获取吗?

您可以编写一个karate-config.js文件,其URL如下所示

function() {

  return {
        baseUrl: 'http://192.168.0.199'
  }

}
您可以在测试中使用此URL,如下所示

Background: 
    * url baseUrl

您应该能够在
karate config.js
中使用这个现有的Java类,这样在您的功能文件中就更容易了。例如:

function() {
  var Config = Java.type('App.Config');
  return {
    stageEndPoint: Config.getStageEndPoint(),
    someOtherEndPoint: Config.getSomeOtherEndPoint()
  };
}
然后在您的功能中:

* url stageEndPoint
(编辑):即使这样显然也不够,所以这里有另一个想法:

function() {
  return {
    Config: Java.type('App.Config')
  };
}
然后:

* url Config.getStageEndPoint()

这很好。然而,我试图跳过创建额外的get方法来访问变量。我想直接访问它。Like-var url=Config.stgEndPoint@好吧,我编辑了答案,还有一个选项。听起来怎么样?看来我还不够清楚。我的目的不是创建额外的方法来获取任何静态变量的值。它不是关于获取单个变量。我们有很多类都有最终的静态变量。我们知道java中不需要getter方法。它可以像App.stageEndPoint一样直接访问。我也在寻找类似的空手道解决方案。如果您将config类作为一个普通的JavaBean使用,那么您当然可以使用
config.stageEndPoint
,但由于它都是静态变量,请好运尝试找到解决方案。我诚实的意见是你在这里很懒。如果您的配置中确实有“许多类”,那么您的设计就有问题。最好的:PI现在必须编写getter方法:)。谢谢彼得的及时回复。