我试图测试一个会呈现 View Controller 的 segue。但是,它总是失败。如何等待segue完成?请协助。
[self.viewController performSegueWithIdentifier:@"mySegueName" sender:self.viewController];
XCTAssertNotNil(self.viewController.presentedViewController, @"Failed to show modal view");
最佳答案
问题是您试图在 View 不在 UIViewController
层次结构中的 UIWindow
上呈现。这是我的解决方案:
- (void)testExample {
//
// Arrange
// Storyboard
//
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
//
// Arrange
// View Controller
//
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[UIApplication sharedApplication].keyWindow.rootViewController = viewController;
//
// Act
//
[viewController performSegueWithIdentifier:@"ModalSegue" sender:nil];
//
// Assert
//
XCTAssertNotNil(viewController.presentedViewController);
}
关于ios - XCTest 如何执行呈现模态视图的转场并测试presentedViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20632140/