首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用calabash测试调用android后门函数时出现的问题

使用calabash测试调用android后门函数时出现的问题
EN

Stack Overflow用户
提问于 2014-08-13 16:40:44
回答 3查看 659关注 0票数 2

我在通过后门函数调用android应用程序的方法时遇到了一个问题。

在我们的项目中,我们使用后门记录事件,使用名为backdoor的calabash函数模拟硬件事件。此函数正在被调用,但在perform_action函数中失败,如下所示

代码语言:javascript
复制
undefined method `perform_action' for #<Object:0x253ea38> (NoMethodError).

此后门用于挂接应用程序函数,我们可以使用测试用例检查响应,使用后门委托进行设置

我想我调用后门传递参数是错误的,你能告诉我如何调用吗?我已经尝试过这些语句,但调用失败。

我正在使用calabash-android 0.4.18,并且已经导入了这个函数。

在我的apk中,我的示例java文件如下所示

代码语言:javascript
复制
public class sample {

    public boolean isDemoModel()
    {
            Log.d("Vageesh","Vageesh to test backboor");
            return true;
    }
}

在我的脚本中,我尝试使用以下方式调用,但由于NoMethod错误而失败

代码语言:javascript
复制
backdoor('isDemoModel()','')
backdoor("'isDemoModel()'","")
backdoor("adb shell am broadcast -a sh.calaba.instrumentationbackend.InstrumentationBackend.isDemoModel",'')

请任何人提供关于如何调用应用程序函数的输入。在IoS中,它像backdoor('isDemoModel()','')一样是直接调用。

问候

Vageesh

EN

回答 3

Stack Overflow用户

发布于 2015-10-28 16:40:46

根据the documentation about backdoors的说法,返回类型必须是void或String。也许这就解决了你的问题?

票数 0
EN

Stack Overflow用户

发布于 2015-10-28 18:45:22

后门调用的语法是backdoor(<name>, [args*])。不要使用括号。

在示例中,backdoor("isDemoModel")是调用该方法的正确方式

哦,是的,你需要更新你的calabash-android版本。

票数 0
EN

Stack Overflow用户

发布于 2017-06-27 15:35:31

您的后门方法必须在活动或应用程序上下文中作为公共方法公开。例如。

代码语言:javascript
复制
public class TestActivity extends Activity {

     public void isDemoModel(){
        Log.d("Vageesh","Vageesh to test backboor");
        return true;
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25281720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档