Я пытаюсь протестировать динамически сгенерированный Spinner. Я могу щелкнуть счетчик, но затем мне нужно выбрать параметр из списка с заданным текстом, который отображается (я узнал из иерархии, что показывается PopupWindow, но я не могу добраться до требуемого текста, который находится за пределами экрана) . Спиннер использует ArrayAdapter пользовательских объектов (код ниже),
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner mySpinner = (Spinner) findViewById(R.id.my_spinner);
List<MyValue> list = Arrays.asList(
new MyValue("One", "1"),
new MyValue("Two", "2"),
new MyValue("Three", "3"),
new MyValue("Four", "4"),
new MyValue("Five", "5"),
new MyValue("Six", "6"),
new MyValue("Seven", "7"),
new MyValue("Eight", "8"),
new MyValue("Nine", "9"),
new MyValue("Ten", "10"),
new MyValue("Eleven", "11"),
new MyValue("Twelve", "12"),
new MyValue("Thirteen", "13"),
new MyValue("Fourteen", "14"),
new MyValue("Fifteen", "15"),
new MyValue("Sixteen", "16"),
new MyValue("Seventeen", "17"),
new MyValue("Eighteen", "18"),
new MyValue("Nineteen", "19"),
new MyValue("Twenty", "20"),
new MyValue("Twenty One", "21")
);
final ArrayAdapter<MyValue> adapter = new ArrayAdapter<>(this,
R.layout.dropdown_selected_item,
list);
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d("MySpinnerTest", "current = " + adapter.getItem(position));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
}
public class MyValue {
String name;
String code;
public MyValue(String name, String code) {
this.name = name;
this.code = code;
}
@Override
public String toString() {
return name;
}
}
}
Я попытался с onData(withSpinnerText("Twenty")).perform(click())
, но получил PerformException, и я попытался выяснить, как еще сопоставить правильное представление на основе заданного текста во всплывающем окне счетчика, но не смог понять, как это сделать.
Любая помощь будет принята с благодарностью.
ТИА