如何使用XCTest打开safari

时间:2016-11-28 12:30:22

标签: objective-c xctest

我是XCTest的新手,我正在尝试使用XCTest在我的iPhone中使用safari应用程序,但无法做任何事情,因为这样做是为了实现这一目标

截至目前已尝试使用代码:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.ggogle.com"]];

3 个答案:

答案 0 :(得分:1)

使用XCTest打开safari是不可能的。我尝试过以下操作,它给出了错误"应用程序可访问性未加载"。

在Brigding-Header.h中声明XCUIApplication私有方法接口:

@interface XCUIApplication (Private)
- (id)initPrivateWithPath:(NSString *)path bundleID:(NSString *)bundleID;
- (void)resolve;
@end

然后尝试打开safari:

let safari : XCUIApplication = XCUIApplication(privateWithPath: nil, bundleID: "com.apple.safari")
safari.launch();

答案 1 :(得分:0)

NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];

if (![[UIApplication sharedApplication] openURL:url]) {
NSLog(@"%@%@",@"Failed to open url:",[url description]);
}

答案 2 :(得分:0)

编写一个模拟[UIApplication openURL:]的单元测试,并验证您是否正在向其传递正确的URL。或者,如果您想要其他方向,请编写一个单元测试,该测试将调用被叫顺序中的UIApplicationDelegate方法,模拟您的应用打开链接。这是你可以使用XCUnit。并手动测试。

或尝试此

NSString *filePath = [[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"YourFileName.json"];
XCTAssertNotNil(filePath);