草庐IT

xctestcase

全部标签

ios - 将应用程序发送到后台并从 XCTest 中的最近应用程序重新启动它

我一直在寻找解决我的问题的方法,我需要将我的应用程序发送到后台并在特定时间间隔后从最近重新启动它。deactivateAppForDuration()用于在InstrumentsUIAutomation中实现此目的。有人知道如何在XCTest中实现吗? 最佳答案 不确定这是否有效,因为我还没有测试过,但值得一试。如果不出意外,它应该可以让您知道去哪里看。XCUIApplication类提供以编程方式终止和启动您的应用程序的方法:https://developer.apple.com/reference/xctest/xcuiappl

ios - 带有互联网连接案例的 XCTestCase

我正在编写一个在线和离线功能分离的应用程序。在这些功能中,我使用Reachability来检查互联网连接,并且在每种情况下(在线/离线),它都会执行不同的工作。现在,我被要求为这些业务逻辑编写测试用例。我到处搜索,但似乎没有人关心iOS中的测试用例。我想编写涵盖在线/离线案例的测试用例。在iOS中可以吗?如果可以,如何模拟互联网连接状态?更新问题:我还想介绍从在线到离线以及从在线到离线的切换案例。应该有办法模拟这个网络连接状态吧? 最佳答案 你应该使用OCMock模拟返回值idreachabilityMock=OCMClassMoc

ios - 将 XCTestCase 目标与 CocoaPods 链接起来

我正在尝试为现有应用设置新的测试目标。目前,我在尝试构建测试目标时遇到以下错误:“找不到AFHTTPRequestOperationManager的接口(interface)声明”另外三个与AFNetworking类相关的未被发现。我已将此添加到我的播客文件的顶部:link_with['AppBoarder','AppBoarderTests']然后运行​​pod安装。我还将libPods.a包含到测试目标的“链接二进制文件与库”部分,但无济于事。有什么想法吗? 最佳答案 另一个前额拍击时刻...包含.a的link_withplus

ios - Xcode 记录 UI 测试 - 如何删除 XCTestCase 自动生成的代码下拉菜单

请参阅随附的屏幕截图,当使用记录按钮生成XcodeUI测试代码时,生成的代码包含烦人的下拉菜单,我不知道如何删除。 最佳答案 当不显示弹出窗口时,双击代码会删除菜单标记。它现在将不再出现在版本控制中。如果出现弹出窗口,您需要选择一个值或以其他方式关闭弹出窗口,然后才能双击工作。如果早期版本的Xcode中存在错误,它至少在Xcode10.3(以及可能更早的版本)中工作 关于ios-Xcode记录UI测试-如何删除XCTestCase自动生成的代码下拉菜单,我们在StackOverflow上

ios - XCTestCase 禁用快照可访问性层次结构

我正在使用XCode的XCTestCase进行自动化UI测试,以衡量我的应用程序的性能。我目前有一个包含25000个元素的UITable,当尝试运行应该滑动此列表的测试时,它会一直运行并在完成测试之前崩溃。应用objective-cPU使用率此时为100%。控制台最后的输出是:Snapshotaccessibilityhierarchyfor当将列表限制为几百个元素(NotAcceptable)时,自动化测试至少能够滚动列表,但每次滚动之间等待大约3-4秒。测试场景:letapp=XCUIApplication();app.buttons["Longlist"].tap();letta

ios - UIAutomation 和 XCTestCase : how to wait for a button to activate

我正在编写一个UIAutomation测试用例,我需要等待用户被激活才能继续。似乎没有很好的方法来检查按钮是否更改为启用状态。最好的方法是等待UI中发生某些事情,然后再检查它的状态?dispatch_after和NSTimer似乎都不起作用。他们只是阻止然后失败。 最佳答案 如果您使用NSPredicates和期望值,这实际上非常容易。您甚至可以设置超时值。此示例向您展示如何使用5秒超时执行此操作。letexists=NSPredicate(format:"enabled==true")expectationForPredicate

ios - XCTestCase子类实例化的过程是怎样的?

我知道类是future对象的蓝图,我正在尝试使用Swift更好地掌握OOP架构。所以我的问题是,当您从类和实例的角度运行测试时会发生什么过程。我不认为我实际上已经创建了我的XCTestCase子类的实例,但Xcode似乎会自动执行此操作。当我正在构建更多激情项目应用程序时,我通常必须创建一个实例才能使用它,但在测试中我没有那种感觉,它只是通过点击(Command+U)来工作。我想了解是否甚至创建了一个实例,如果是如何创建的?这是蓝图XCTestCase子类的一些示例代码,但我从来不需要实际实例化这个类:importXCTest@testableimportFirstDemoclassF

ios - 子类 XCTestCase 导致无法加载底层模块 XCTest

我正在编写一个用于测试目的的库。所以我需要在我的主要目标中而不是在我的单元测试目标中使用XCTest。目前正在使用Xcode9。当我导入XCTest时,出现错误“无法加载‘XCTest’的底层模块”。我知道主要目标不是针对框架进行链接,但是将其添加到链接框架(必需)中不会改变任何内容。我也查看了QuicksProject设置,但没有发现任何异常。我错过了什么? 最佳答案 这可能有点晚了,但你要做的是:主项目不与XCUnit框架链接。您应该为您的项目创建一个单独的测试目标(如果尚不存在),并将您的测试源文件添加到该目标。在项目导航器中

ios - 为什么XCTestCase会覆盖XCTest的setup方法?

我想认为我理解继承的概念,但显然我不理解,因为我很困惑如果XCTest在其类中提供设置方法,为什么在XCTestCase中有设置方法?XCTestCase是XCTest的子类,但在阅读Apple文档后,两者之间看起来没有任何区别。importXCTest@testableimportFirstDemoclassFirstDemoTests:XCTestCase{overridefuncsetUp(){super.setUp()//Putsetupcodehere.Thismethodiscalledbeforetheinvocationofeachtestmethodintheclas

swift - (XCTestCase) 如何断言 block 是否已在主线程或外部(任何其他线程)调用?

如果在主线程或外部(任何其他线程)调用了一个block,如何断言?假设我们有一个类:classA{funcasyncOperation(handler:Void->Void){//someprocessingdispatch_async(dispatch_get_main_queue(),completionHandler)}}classATests:XCTestCase{functestHandlerInMainThread(){leta=A()letexpectation=expectationWithDescription("Handlermustbecalledinmainth