UITests:从堆栈弹出的UINavigationBar仍然存在

时间:2015-09-02 21:18:52

标签: ios swift xcode xcode-ui-testing

我有UINavigationController有3个控制器:

  • the roor

enter image description here

let wishlistsNavigationBar = app.navigationBars["wishlistsNavigationBar"]
  • 帐户

enter image description here

let accountNavigationBar = app.navigationBars["accountNavigationBar"]
  • 添加

enter image description here

let addWishlistNavigationBar = app.navigationBars["addWishlistNavigationBar"]

现在我执行测试:

accountButton.tap()
XCTAssertTrue(accountNavigationBar.exists) //true

backFromAccountButton.tap()
XCTAssertFalse(accountNavigationBar.exists) //true, test failed, but it should not exists
XCTAssertTrue(wishlistsNavigationBar.exists) //false, test failed, but it should exists

让我们看看。为什么我从堆栈中弹出它后仍然存在accountNavigationBar

enter image description here

1 个答案:

答案 0 :(得分:0)

由于ViewController已设置动画,您是否尝试等待几秒钟才能消失,而不是在点击按钮后立即进行测试?例如,您可以尝试

expectationForPredicate(NSPredicate(format: "exists == 1"), evaluatedWithObject: accountNavigationBar, handler: nil)
waitForExpectationsWithTimeout(defaultPredicateTestTimeout, handler: nil)