问题标签 [xctestcase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
544 浏览

ios - 执行整个测试套件时单元测试用例失败

我正在为我的 sqlite 数据库类编写单元测试用例。我在那个类中有五个公共 API。

我的测试用例如下所示:

每个单一的单元测试都在没有任何错误的情况下执行。但是在执行整个测试套件时它会失败。

可能,我知道失败的根本原因。这是因为当执行整个测试套件时,所有测试都会并行运行,并且数据库中会同时发生更新-删除。因此,当所有单元测试运行时,它将失败。

但我不知道如何解决这个问题,因为这不是异步的,因此我不能使用XCExpectation类。

需要帮助来解决和理解问题。

0 投票
1 回答
217 浏览

ios - 在 XCTestCase 期间切换互联网可用性

在 XCTestCase 期间,我想以某种方式说“禁用互联网”,它实际上会被禁用。然后稍后我想以某种方式说“启用互联网”,它会回来。关键是要看到我的应用程序在网络请求失败然后成功时表现正常。做这个的最好方式是什么?

打开和关闭飞行模式就足够了,但我不知道有什么方法可以做到这一点。我考虑过创建一个专用模拟器,该模拟器预先配置为禁用互联网,例如打开飞行模式,但这会限制我在一个预先配置的模拟器而不是模拟器(或设备)上运行此测试的能力) 我的选择。

0 投票
1 回答
1508 浏览

ios - iOS XCTestCase 启动、执行一些操作、终止应用程序并重新启动应用程序

我必须在 iOS 模拟器上使用 swift 和 XCTestCase 自动化以下场景。

  • 第 1 步:启动应用程序
  • Step2:在应用程序上执行一些操作
  • 第三步:杀死应用程序
  • 步骤 4:重新启动应用程序并检查执行的操作是否持久

我在我们的一个问题中发现使用以下代码段。

它对我不起作用,有人可以建议任何不同的方法。

谢谢,

0 投票
1 回答
906 浏览

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

我正在使用 XCode 的 XCTestCase 进行自动化 UI 测试,以测量我的应用程序的性能。我目前有一个包含 25 000 个元素的 UITable,当尝试运行应该刷这个列表的测试时,它需要永远并且在完成测试之前崩溃。应用程序的目标 CPU 使用率此时为 100%。

控制台中的最后一个输出是:

快照可访问性层次结构

当将列表限制为几百个元素(不可接受)时,自动化测试至少能够滚动列表,但每次滚动之间需要等待大约 3-4 秒。

测试场景:

那么有什么方法可以加快测试速度呢?也许禁用可访问性层次结构(不以任何方式使用可访问性标签进行测试)。

0 投票
1 回答
1149 浏览

swift - 使用泛型参数对函数进行快速单元测试

我有一个定义如下的函数:

当我尝试运行以下单元测试时:

如上所述,我得到了错误Generic parameter 'T' could not be inferred

此函数编译、构建和工作正常(当不是单元测试时)。

知道如何测试吗?

0 投票
1 回答
656 浏览

objective-c - 无法在 macOS 应用程序上运行 xctest - 无法加载,因为它已损坏或缺少必要的资源

请在这种情况下帮助我。我看到了几篇与此相关的帖子,但在没有 pods的情况下无法解决我的mac App 的问题。

项目已有数年历史,在macOS(Objective C)中开发。现在我正在尝试使用 XCTest 进行单元测试。使用 Xcode 7.3.1,我无法运行测试类。

这个项目是创建框架作品。项目运行良好,唯一的问题是测试。我们不应该做 Pod 或其他一些替代品。

控制台窗口显示以下几点:

xctest[35530:345970] 无法加载捆绑包“BaseLibTests”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包。xctest [35530:345970]dlopen_preflight(/Users/12345678/Documents/Modify/Cocoa/Projects/BaseLib/build/Debug/BaseLibTests.xctest/Contents/MacOS/BaseLibTests):库未加载:@executable_path/../Frameworks/ FreeTDS.framework/Versions/A/FreeTDS 引用自:/Users/12345678/Documents/Modify/Cocoa/Projects/BaseLib/build/Debug/BaseLib.framework/Versions/Current/BaseLib 原因:未找到合适的图像。确实找到了:/Library/Frameworks/FreeTDS.framework/Versions/A/FreeTDS:通用包装器中没有匹配的架构)程序以退出代码结束:82

0 投票
1 回答
143 浏览

swift - 在 APPNAME UITests-Runner.app 的包 NSBundle 中找不到名为“Main”的故事板

当我尝试从 XCTestCase 类中的情节提要实例化视图控制器时,应用程序崩溃了。

0 投票
1 回答
554 浏览

ios - XCTests 和 PHPhotoLibrary

我在应用程序中有将图片保存在照片库中的功能。我想知道如何测试这段代码:

现在让我们假设我想在我的案例场景中测试self.cameraOutputandUIImage和 sth 出错了,并且有一个错误,completionHandler所以我最终使用了self.unsucessfullSavingOperation(error)方法。这当然有单独的测试,但我想介绍的是:

确保每当在相机胶卷中插入图像出现问题时,我最终都会调用此方法

当我尝试调用saveInPhotoGallery()测试目标时,它会发出警报,表明这需要访问您的照片库(doh!)。但是有一种方法可以在单元测试中跳过此警报或检查它是否弹出并按允许?(就像我说的,对于这个测试,让我们假设我有这个权限)

还是有办法模拟这种行为?

0 投票
2 回答
969 浏览

ios - XCTest POST API 性能测试

我正在为我的 iOS swift 项目实施单元测试。我想为项目中的 POST API 实现性能测试,但我不知道如何实现该 POST API。我已经测试了 GET API,这给了我想要的结果。

这是我要实现的代码

当我运行此测试时,它成功通过但不打印响应 JSON,也没有给出错误并显示“时间 0.0000 秒(161% STDEV)”,而在邮递员中运行相同的 API 需要几秒钟。请检查并帮助我解决这个问题。

0 投票
1 回答
1996 浏览

xcode - XCTestCase not launching application in setUp class method

I am using XCode 8 and XCTestCase. I created a class setUp function to be ran once before all tests, and the other setUp to be ran before each test case.

I want the application to be launched once before all test cases. If I use the launch in the class setUp, it never gets executed. If I use the launch in the setUp that is ran before each test, it does launch the test.

enter image description here

It prints:

IN CLASS SETUP

END CLASS SETUP

IN SETUP

IN TEST METHOD

But the application never gets launched. If I uncomment the line to launch the application in the second setUp, it will get launched.

How can I have the application be launched once before all the tests in my test class?