通过后门功能调用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
答案 0 :(得分:0)
根据the documentation about backdoors,返回类型必须为void或String。也许这可以解决你的问题?
答案 1 :(得分:0)
后门调用的语法是backdoor(<name>, [args*])
。不要使用括号。
backdoor("isDemoModel")
是在示例中调用方法的正确方法
哦,是的,你需要更新你的calabash-android版本。
答案 2 :(得分:0)
您的后门方法必须作为活动或应用程序上下文中的公共方法公开。 E.g。
public class TestActivity extends Activity {
public void isDemoModel(){
Log.d("Vageesh","Vageesh to test backboor");
return true;
}
}