我在通过后门函数调用android应用程序的方法时遇到了一个问题。
在我们的项目中,我们使用后门记录事件,使用名为backdoor的calabash函数模拟硬件事件。此函数正在被调用,但在perform_action函数中失败,如下所示
undefined method `perform_action' for #<Object:0x253ea38> (NoMethodError).此后门用于挂接应用程序函数,我们可以使用测试用例检查响应,使用后门委托进行设置
我想我调用后门传递参数是错误的,你能告诉我如何调用吗?我已经尝试过这些语句,但调用失败。
我正在使用calabash-android 0.4.18,并且已经导入了这个函数。
在我的apk中,我的示例java文件如下所示
public class sample {
public boolean isDemoModel()
{
Log.d("Vageesh","Vageesh to test backboor");
return true;
}
}在我的脚本中,我尝试使用以下方式调用,但由于NoMethod错误而失败
backdoor('isDemoModel()','')
backdoor("'isDemoModel()'","")
backdoor("adb shell am broadcast -a sh.calaba.instrumentationbackend.InstrumentationBackend.isDemoModel",'')请任何人提供关于如何调用应用程序函数的输入。在IoS中,它像backdoor('isDemoModel()','')一样是直接调用。
问候
Vageesh
发布于 2015-10-28 16:40:46
根据the documentation about backdoors的说法,返回类型必须是void或String。也许这就解决了你的问题?
发布于 2015-10-28 18:45:22
后门调用的语法是backdoor(<name>, [args*])。不要使用括号。
在示例中,backdoor("isDemoModel")是调用该方法的正确方式
哦,是的,你需要更新你的calabash-android版本。
发布于 2017-06-27 15:35:31
您的后门方法必须在活动或应用程序上下文中作为公共方法公开。例如。
public class TestActivity extends Activity {
public void isDemoModel(){
Log.d("Vageesh","Vageesh to test backboor");
return true;
}
}https://stackoverflow.com/questions/25281720
复制相似问题