Karate 如何直接获取空手道特征文件中java类的静态变量值
我有一个java类,它拥有应用程序所需的所有URL。我想在功能文件中访问此项。我知道可以通过创建get方法来访问它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
* 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方法:)。谢谢彼得的及时回复。