小编Joe*_*tti的帖子

Xcode7 | Xcode UI测试| 如何处理位置服务警报?

我正在使用Xcode7/iOS 9中引入的XCUIApplication,XCUIElement和XCUIElementQuery为我的应用程序编写UI测试用例.

我遇到了路障.测试用例中的一个屏幕需要iOS的位置服务.正如预期的那样,系统会提示用户允许使用名为" Allow “App name” to access your location while you use the app?with Allow&Don't Allowbuttons"的警报来使用位置服务.

问题是或许似乎由于警报由OS本身呈现,因此它不存在于Application的元素子树中.

我记录了以下内容:

print("XYZ:\(app.alerts.count)")//0
var existence = app.staticTexts["Allow “App Name” to access your location while you use the app?"].exists
print("XYZ:\(existence)")//false
existence  = app.buttons["Allow"].exists
print("XYZ:\(existence)") //false
Run Code Online (Sandbox Code Playgroud)

甚至UI录制生成类似的代码:

XCUIApplication().alerts["Allow “App Name” to access your location while you use the app?"].collectionViews.buttons["Allow"].tap()
Run Code Online (Sandbox Code Playgroud)

我还没有找到任何可以让我解决这个问题的API.例如:

  • 点按屏幕上的某个位置
  • 在应用外部获取提醒

那我该怎么办呢?有没有办法配置测试目标,以便不需要位置服务授权.

xcode xctest ios9 xcode-ui-testing xcode7-beta4

31
推荐指数
2
解决办法
1万
查看次数

空UITableView的备用文本?

我正在使用UITableView显示用户可以过滤的一些数据.如果选择某个(完全"合法")组合,则过滤掉所有数据(隐藏).我想显示一些文字,说明没有找到结果,请修改您的过滤器.

发生这种情况时是否有任何触发我可以挂钩?

或者我是否必须手动检查空数据集并创建自定义视图以显示我的文本?(我想创建一个空白单元格并使用该页脚?希望有更优雅的东西...)

我发现了一个类似的问题,但解决方案不是我想要的:在UITableViewController中处理空的UITableView

此外,我有一个Android编程背景并经常使用这个功能,如果Apple没有这样做,我会感到惊讶!

uitableview ios

14
推荐指数
1
解决办法
8826
查看次数

是否可以在WKWebViews之间共享缓存?

我正在构建一个混合iOS应用程序WKWebView.当用户点击链接时,请求被劫持,并且在导航堆栈上推送新的视图控制器.新控制器创建一个新的WKWebView并加载现有请求.这使应用程序"感觉"原生,但在网络上呈现内容.

通过使用Safari调试工具,我注意到Web视图之间没有缓存任何资产.但是,如果我在现有Web视图中重新请求某些内容,则所有JavaScripts和CSS都会标记为"缓存".

那么,是否可以在WKWebView实例之间共享缓存?他们已经共享相同WKProcessPool的共享cookie.

ios hybrid-mobile-app wkwebview

12
推荐指数
1
解决办法
1056
查看次数

NSStringFromClass([MyEntityClass class])是否生成安全的Core Data Entity名称?

大多数(我所见过的)核心数据教程使用以下带有@"MyEntityClass"硬编码的代码片段:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"MyEntityClass"];
Run Code Online (Sandbox Code Playgroud)

NSStringFromClass()用作实体名称是否安全?

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:NSStringFromClass([MyEntityClass class])];
Run Code Online (Sandbox Code Playgroud)

这种接缝在处理重构等方面更容易处理.特别是因为我正在使用Xcode创建我的NSManagedObject子类.我问,因为我以前从未见过这个,所以也许我错过了一些东西.

core-data objective-c nsstring

10
推荐指数
1
解决办法
4825
查看次数

如何在UI测试期间使用Xcode 7截取我的UI屏幕截图?

所以我下载了XCode 7的测试版并且我已经创建了一些UI测试,但是我找不到在测试期间如何截取我的app/UI截图的功能.

有人可以帮忙吗?

xcode ios xcode-ui-testing

10
推荐指数
1
解决办法
6199
查看次数

如何配置我的EarlGrey测试以等待视图或事件?

我正在编写一个测试,我需要等待特定视图使用EarlGreyUI测试框架在我的UI中显示.所以,我在这里查看了文档,并尝试使用它GREYCondition.但似乎GREYCondition需要使用特定条件检查等.任何人都可以告诉我这种情况的格式是什么?有什么方法可以让我在我的观点中通过条件让它等待它?

testing functional-testing ios earlgrey

5
推荐指数
1
解决办法
2090
查看次数

MFMailComposeViewController的Localizable.strings中的换行符

如何在我的语言文件中添加换行符以供使用MFMailComposeViewController?在\n我doesent工作.使用返回键上的正常klick中断具有相同的结果,没有换行符!


我的档案:

"Body_eMail"= "Hello, here is some text.\n\nLorem ipsum alsu.\n\nAnd some text, more...";
Run Code Online (Sandbox Code Playgroud)

我想要:

你好,

这是一些文字.Lorem ipsum alsu.

还有一些文字,更多......


本作的UILabel工作正常(如@lawicko下文提到),但加入到时MFMailComposeViewController\n字符内置显示,如下图所示:

Hello, here is some text.\n\nLorem ipsum alsu.\n\nAnd some text, more...

什么是正确的方法?

xcode line-breaks localizable.strings ios mfmailcomposeviewcontroller

4
推荐指数
1
解决办法
4394
查看次数

命名空间'std'中没有名为'shared_ptr'的类型

希望这有助于其他人

尝试使用Cedar BDD编译iOS项目时,在命名空间"std"错误消息中没有名为"shared_ptr"的类型时失败.这显然是一个C++错误,但无法理解为什么C++库Xcode正在使用didn; t已经定义了shared_ptr类型,直到我发现目标的构建设置提供了两个库可供选择

  • libstdc ++(编译器默认)
  • 的libc ++

bdd xcode shared-ptr cedar-bdd

4
推荐指数
1
解决办法
7460
查看次数

Xcode 7 - 如何为UI测试启动界面录制?

我正在看WWDC 2015会议104"Xcode中的新功能",并且在Xcode 7中我可以记录接口单元测试以自动点击按钮,输入文本等.

我有一个包含UITests的新项目,但我如何开始记录UITests的界面交互?

以下是测试中包含的片段:

- (void)setUp {
    [super setUp];

    // Put setup code here. This method is called before the invocation of each test method in the class.

    // In UI tests it is usually best to stop immediately when a failure occurs.
    self.continueAfterFailure = NO;
    // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
    [[[XCUIApplication alloc] init] launch];
}
Run Code Online (Sandbox Code Playgroud)

xctest ios9 xcode7 xcode-ui-testing

3
推荐指数
1
解决办法
3439
查看次数