2016-06-29 9 views
1

XCUITestを使用してビューが非表示になっているかどうかをテストするにはどうすればよいですか?ビューが時々隠されています(Hidden viewのようなXcodeで設定) Swiftを使用してXCUITestでそれをテストするにはどうすればよいですか?私の場合、ビューは単なるラベルです。私はこのような何かを試しました:XCTAssertFalse(app.staticTexts["pushNotificationInstruction"].accessibilityElementsHidden)。しかしそれはそうではありません。 accessibilityElementsHiddenはビューが隠されているのと同じではありません。ありがとう。XCUITestを使用してUIViewが非表示になっているかどうかをテストします

+1

ところで、あなたはブール値をチェックするために 'XCTAssertTrue'と' XCTAssertFalse'を使用することができます – Alexander

答えて

1

残念ながら、現在XCUITestを使用することはできません。ここでは、アップルのエンジニアは、この正確な問題のためにレーダーを提出提案、開発者フォーラムのスレッドがある:私は個人的にUIViewsの特定のプロパティにアクセスすることができないことで課される制限に関連するカップルのレーダーを提出したhttps://forums.developer.apple.com/message/46271

XCUITestの中から。 XCUITestの欠点のために、同じことをして、テストからブロックされたシナリオの詳細を提供することをお勧めします。

+0

おそらくEarlGreyを試してみることができます:http://www.github.com/google/EarlGrey? – khandpur

0

ビューが存在しないと主張でき、シナリオが存在するときに別のテストを使用してチェックできます。たぶん少し壊れやすいかもしれませんが、それはあなたのケースをカバーするでしょう。

let viewControllerShown = app.otherElements["view_myviewcontroller"].waitForExistence(timeout: 5) 
XCTAssert(viewControllerShown) 
let instructionViewExists = app.staticTexts["pushNotificationInstruction"].exists 
XCTAssertFalse(instructionViewExists) 
0

好都合溶液は、accessibilityidentifierのビューの表示状態を運ぶことです。あなたのビューコントローラで

:あなたのテストでは

view.isHidden = hideView 
view.accessibilityidentifier = "view1"+(hideView ? "hidden" : "") 

XCTAssert(app.otherElements["view1"].exists) 

または

XCTAssertFalse(app.otherElements["view1"].exists) 
関連する問題