Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中测试AutoCompleteTextView_Android_Junit_Robolectric - Fatal编程技术网

在Android中测试AutoCompleteTextView

在Android中测试AutoCompleteTextView,android,junit,robolectric,Android,Junit,Robolectric,我正在使用Robolectric测试我的Android应用程序,我遇到了一个问题:在我的MainActivity中,我有以下代码: private DelayAutoCompleteTextView textview_departure; <snip> textview_departure.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<

我正在使用Robolectric测试我的Android应用程序,我遇到了一个问题:在我的MainActivity中,我有以下代码:

private DelayAutoCompleteTextView textview_departure;
<snip>
textview_departure.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

            JsonPlace place = (JsonPlace) arg0.getItemAtPosition(position);
            departureName = place.getPlaceName();
            textview_departure.setText(departureName);
            uniqueDepartureStation = place.getID();

        }
    });
private DelayAutoCompleteTextView textview\u离开;
textview_deposition.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
JsonPlace=(JsonPlace)arg0.getItemAtPosition(position);
departureName=place.getPlaceName();
textview_department.setText(departureName);
uniqueDepartureStation=place.getID();
}
});
DelayAutoCompleteTextView是从中复制的。 无论如何,我的问题是为了测试我的MainActivity,我需要从我的测试类执行上面的代码。不幸的是,Robolectric中没有实现任何ShadowAutoCompleteTextView类,因此我不确定如何单击AutoCompleteTextView提供的列表中的项目


关于如何启动和运行此测试,有什么建议吗

这完全取决于您需要执行的操作。阴影是用来帮助测试的。它们有时帮助初始化视图或从中获取/设置否则无法访问的数据。这并不意味着没有阴影你什么都做不了

如果您能够在测试中构建DelayAutoCompleteTextView而不会出现问题,并且可以使用普通方法从中访问所需的数据,那么您就可以不使用任何阴影。只需使用findviewbyd()找到它,然后像平常一样使用它。要在任何视图上执行单击,可以调用方法callOnClick


如果您无法完成所需的操作,您可以始终为此视图创建自己的自定义阴影,如下所述:

谢谢您的回复。我研究了在不使用阴影对象的情况下触发onItemClick,并认为这可能是一个开始:AutoCompleteTextView textview\u detairation=(DelayAutoCompleteTextView)activity.findViewById(R.id.text\u detairation);textview_-defation.getOnItemClickListener().onItemClick(null,textview_-defation,0,0);“null”必须由工作的父引用替换,但我还没有找到正确设置此参数的方法。有什么建议吗?我建议的是textview\u deposition.callOnClick()。这是视图类本身中的一个方法。如果textview有一个OnClickListener,则该方法可以工作,但不能在OnItemClickListener上工作。