如何在XCUI测试中检查菜单项的状态

问题描述

这是我的用例...

我的应用程序具有许多菜单项,这些菜单项的状态是根据布尔值(也与用户认值相关联)在开和关之间切换的。也就是说,当用户单击菜单项时,它不仅会切换状态,还将状态保存为用户认设置。

这一切都很好,但是我试图将测试添加到我的XCUIApplication测试中,以检查状态是否确实从一个应用程序运行保存到另一个应用程序。但是,我无法确定如何实际测试菜单项的状态。

我找到了菜单项并确认它存在,具有正确的标题并被启用,如下所示:

let item = app.menuItems["viewHighlightChanges"]
XCTAssertTrue(item.exists)
XCTAssertEqual(item.title,"Highlight Changes")
XCTAssertTrue(item.isEnabled)

然后我可以通过单击来切换项目:

item.click()

我可以直观地确认这一切正常。

但是我不知道如何确定菜单项是选中(状态为开)还是未选中(状态为关)。我以为它可以用item.value编码,但是在单击之前和之后都返回nil。我还认为它可能位于item.isSelected中,但是所选状态与状态不同,在这种情况下,单击之前和之后总是false

我的目标是在单击后记录状态,然后退出并重新启动应用程序,并再次测试状态以查看其是否正确保留了自身。我知道它能正常工作是因为我可以在测试运行时直观地检查状态,但是自动化测试的全部目的是让计算机告诉我它是否可以工作。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)