在为android编写测试测试时,My Spinners正在使用SimpleCursorAdapter并加载了CursorLoader。我什么时候尝试使用代码在微调器中选择和项目。
onData(allOf(is(instanceOf(Cursor.class)), CursorMatchers.withRowString("value","Yes")))
.inAdapterView(withId(R.id.mySpinner))
.perform();
我收到错误
net.sqlcipher.CursorIndexOutOfBoundsException: Index 2 requested, with a size of 2
at net.sqlcipher.AbstractCursor.checkPosition(AbstractCursor.java:556)
at net.sqlcipher.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:222)
at net.sqlcipher.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:43)
at android.database.CursorWrapper.getString(CursorWrapper.java:137)
at android.database.CursorWrapper.getString(CursorWrapper.java:137)
at android.support.test.espresso.matcher.CursorMatchers$7.apply(CursorMatchers.java:245)
at android.support.test.espresso.matcher.CursorMatchers$CursorMatcher.matchesSafely(CursorMatchers.java:113)
at android.support.test.espresso.matcher.CursorMatchers$CursorMatcher.matchesSafely(CursorMatchers.java:61)
at android.support.test.espresso.matcher.BoundedMatcher.matches(BoundedMatcher.java:73)
at org.hamcrest.core.AllOf.matches(AllOf.java:27)
at org.hamcrest.DiagnosingMatcher.matches(DiagnosingMatcher.java:12)
at android.support.test.espresso.action.AdapterDataLoaderAction.perform(AdapterDataLoaderAction.java:83)
at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction.java:144)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5459)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
如果我正在访问一个包含5列的游标,那么错误将是
net.sqlcipher.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5
答案 0 :(得分:-1)
你的旋转器中有一个暗示。似乎withRowString()方法将提示视为适配器的一部分,即使它不是,这就是为什么你得到索引超出范围的错误。
我说这是因为我有完全相同的错误并删除提示为我修复了它。