希望标题不是太模糊。在我正在测试的应用程序中,某些app-flow启动了外部应用程序(例如Safari或Facebook)。如何验证应用程序是否通过UI测试启动了它们?我可以测试像openURL一样的单元测试但是有一个等效的用户界面吗?
我在离开应用程序后并没有尝试真正继续,只是为了测试并确保启动了相应的新应用或网址。模拟器/记录器可以从启动的应用程序中选择UI元素,但测试在代码的那一点上断开。我也试着在菜单栏上找到一些东西(总是出现在应用程序中,比如一个汉堡包按钮),当它在那里然后在启动另一个应用程序后检查它(以确保它不在那里) 。但这也打破了考验。
有解决方法吗?或者这只是单元测试要测试的东西?
答案 0 :(得分:1)
正如您所提到的,UI框架只能测试给定的应用程序。因此,我会做一个断言,以确保您之前所在的屏幕(在打开safari或facebook等之前)不再存在。例如:
XCTAssertFalse(app.tables.elementBoundByIndex(0).exists, "Found element, so app didn't open safari/facebook")
您只是断言元素不是,将app.tables.elementBoundByIndex(0).exists
更改为您要检查的任何元素。