【发布时间】:2021-05-18 05:24:47
【问题描述】:
我有一个扩展LinearLayout 的PinCodeView。我的init() 方法中有以下代码。 DigitEditText 扩展 EditText 并且只接受一位数字。此视图将用于接收 4 位长的确认码。
private void init()
{
...
for (int i = 0; i < 4; i++)
{
DigitEditText digitView = getDigitInput();
digitView.setTag(R.id.etPinCodeView, i); // uses for Espresso testing
digitView.setKeyEventCallback(this);
...
}
我创建了res/values/ids.xml,这是它的内容:
<resources>
<item name="etPinCodeView" type="id"/>
</resources>
现在,在 Espresso 中,我想捕捉每个 DigitEditText 并在其中输入一个数字。我怎么能做到这一点?我看到有两种方法,withTagKey() 和withTagValue(),但我不知道如何让它们发挥作用。
我认为这样的事情可能会起作用,但似乎我无法将 0 分配给 withTagValue()。
onView(allOf(withTagKey(R.id.etPinCodeView), withTagValue(matches(0)))).perform(typeText("2"));
【问题讨论】: