Próbuję przetestować dynamicznie generowane Spinner. Mogę kliknąć spinner, ale muszę wybrać opcję z listy z wyświetlonym danym tekstem (dowiedziałem się z przeglądarki hierarchicznej, że jest wyświetlane okno PopupWindow, ale nie mogę dostać się do wymaganego tekstu, który jest poza ekranem) . Spinner wykorzystuje ArrayAdapter obiektów niestandardowych (kod poniżej)Dynamiczne spinner espresso testowanie
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;
}
}
}
Próbowałem z onData(withSpinnerText("Twenty")).perform(click())
ale dostać PerformException i próbowałem dowiedzieć się, w jaki inny sposób dopasować prawidłowy pogląd oparty na danym tekście, w turbinki popupwindow, ale nie mógł dowiedzieć się, jak to zrobić.
Każda pomoc zostanie bardzo doceniona.
TIA
Czy możliwe jest dołączenie wykonywanego wyjątku, który widzisz, z narzędziem dopasowującym SpinnerText? –