gpt4 book ai didi

Android 测试上下文菜单

转载 作者:太空狗 更新时间:2023-10-29 12:56:02 25 4
gpt4 key购买 nike

我正在尝试使用 ActivityUnitTestCase 或 ActivityInstrumentationTestCase2 测试我的 Activity 。在 Activity 中我想测试我的

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.setHeaderTitle(R.string.lcMenuHeader);

menu.add(Menu.NONE, EDIT_MENU_POS, EDIT_MENU_POS, R.string.lcEditAccount);
menu.add(Menu.NONE, COPY_MENU_POS, COPY_MENU_POS, R.string.lcCopyAccount);
menu.add(Menu.NONE, DELETE_MENU_POS, DELETE_MENU_POS, R.string.lcDeleteAccount);
}

我如何测试菜单是否处于正确状态 - 即。 3 个项目和一个给定的标题?我可以使用

在我的 ActivityInstrumentationTestCase2 测试中触发它的创建
textView.performLongClick();

但我不知道如何取回它。

谢谢斯蒂芬

最佳答案

最后,我在 ActivityUnitTestCase 测试用例中使用了反射:

AccountEntryContextMenuMock mock = new AccountEntryContextMenuMock();
ContextMenu menu = (ContextMenu)Proxy.newProxyInstance(mLogInActivity.
getClassLoader(), new Class<?>[] { ContextMenu.class }, mock);

mLogInActivity.onCreateContextMenu(menu, accList, null);
//Now query the mock that the right things happened

模拟菜单看起来像:

public class AccountEntryContextMenuMock implements InvocationHandler {

@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {

if (method.getName().equals("setHeaderTitle")) {
//record it and make available for test
}
else if (method.getName().equals("add")) {
//record it and make available for test
}

return null;
}
}

关于Android 测试上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com