问题标签 [xctest]

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 投票
1 回答
1742 浏览

xcode - XCTest 中没有加载本地化?

我在 Xcode 中有一个模式,它只配置了测试。这个模式指向一个包含我所有测试的目标(这是 OS X 的 Cocoa Unit Testing Bundle 目标)。

所以,我用 Command+U 来运行所有这些测试,它工作正常。但是,有几个测试需要访问本地化资源。我将这些资源添加到我的目标中,甚至签入生成的本地化资源存在的二进制文件。

但是,代码看不到资源,因此当任何测试执行 NSLocalizedString 时,它会返回一个键,而不是本地化字符串。

为了让测试看到这些资源,我需要做些什么特别的事情吗?

0 投票
1 回答
177 浏览

ios - XCTest 和需要一个特殊目标来调整应用程序启动行为

我正在尝试实现 XCTest,因为我在 iOS 应用程序中有一个错误,我似乎没有弄清楚,所以想开始构建获取案例。

但是,该应用程序在加载时会自动连接到服务器以更新数据。然而,对于测试,我不希望这种情况发生,因为我需要清除 CoreData 数据库并为每个测试填充。

如果要运行测试,有没有办法知道何时构建(在目标上)?也就是说,我可以在测试时使用标志来省略某些操作?

或者我应该只是复制我的正常目标专门用于测试,并以这种方式放置一个标志?(例如#if TESTING 而不是#if DEBUG)

0 投票
2 回答
1533 浏览

xcode - Xcode 5 测试未运行

当我尝试运行测试时,我从 Xcode 收到以下消息:

这个问题已经在这里问过:Xcode 5 throws "Library not loaded" error when added a test target 但该解决方案不适用于我,因为这是一个 Mac 应用程序。有任何想法吗?

0 投票
1 回答
14780 浏览

xcode - 如何使用 Xcode 5 从命令行运行 xctest?

我发现了一个名为“xctest”的命令行工具,它显然可以在您的项目中运行单元测试。该可执行文件位于此处:

当我尝试在我的 xctest 包上运行这个可执行文件时,我正在使用:

但是,我得到以下输出:

据我所知,没有 xctest 的手册页,但在命令行中仅输入 ./xctest 会产生:

特别是,我希望能够只测试测试类中的特定方法,这就是我想使用这个 xctest 命令的原因。

我确实看到有一种方法可以从命令行运行所有测试,例如:

这将运行所有单元测试并正常工作(我看到了我的单元测试结果,与使用 xctest 时不同)。但我对能够从命令行运行单个测试方法感兴趣,例如:

0 投票
2 回答
2048 浏览

ios - 在 Xcode5 中使用 XCTest 时 AFNetworking 导致错误

我正在使用 Xcode 5,现在刚刚开始对我现有的项目进行单元测试,为此我将CocoaTouch Unit Testing Bundle作为目标(目标名称为:MyAppTests)添加到我的项目中。我之前使用 AFNetworking 库添加了CocoaPods,而我正在运行测试用例我收到错误 AFNetworking.h 文件未找到。我在 Tests.m 中添加了 AFNetworking.h,但问题仍然存在。是否有任何其他设置可以将 Pod 包含到我的测试目标中?

0 投票
2 回答
15058 浏览

xcode5 - 如何从 SenTestingKit/OCUnit 迁移到 XCTest?

我正在将我的项目从 Xcode 4.6.3 迁移到 Xcode 5.0.2。该项目的单元测试是使用 SenTestingKit/OCUnit 开发的。现在,当我在 Xcode 5 中运行测试时,我从RunUnitTests脚本中得到一个错误,告诉我

RunUnitTests 已过时。

可能相关的是 Xcode 5 发行说明中的​​此说明:

SenTestingKit 和 OCUnit 已弃用。使用迁移器移动到 XCTest。

不幸的是,我无法找到更多关于这个神秘“移民”的信息。可能我的 google-fu [再次] 缺少,所以我的主要问题是:如何将单元测试从 SenTestingKit/OCUnit 迁移到新的 XCTest(有或没有“迁移器”)?

第二个问题,如果迁移是一项复杂的业务:是否有可能让 Xcode 5 运行仍然基于 SenTestingKit/OCUnit 的单元测试?毕竟这些只是被弃用了,所以它们应该仍然存在并且可以使用。

0 投票
1 回答
1293 浏览

objective-c - OCMock 2.2.1、Xcode 5.0.2、XCTest 和类方法模拟(在类别中声明)的问题

介绍:

我有这个问题标题中提到的工具(Xcode 5.0.2)、库(OCMock 2.2.1)和测试(XCTest)设置。

类别:

我在 NSObject 上有一个类别,其类方法如下:

OCMock 和 XCTest 框架有问题吗?:

现在我有一个简单的测试设置,我在其中模拟一个简单的值对象,如下所示:(模拟值对象是一种测试气味,我知道。但这只是为了说明目的。)

当执行测试方法 testFoo 的第 3 行时,我最终得到错误:

问题:

为什么使用 OCMock 模拟类方法似乎是不可能的(至少在我的设置中)?

如果我hasDeclaredPropertyWithName采用像这样的实例方法

一切正常!

有人可以向我解释这种 OCMock 缺陷吗?还是我在这里对 Objective-C 有一个重大的误解?:)

该类别是否可能导致运行时和/或 OCMock 头痛?顺便说一句,我没有TestObject直接用类方法尝试这个测试!

0 投票
1 回答
138 浏览

xcode - 作为在 Xcode 5 中构建应用程序的一部分,您可以运行单元测试吗?

在 Xcode 4.x 中,任何单元测试(逻辑测试)都可以作为构建主要目标的一部分运行。

Xcode 5 是否可以进行类似的设置?

更新

问题归结为 Xcode 启动模拟器作为运行逻辑测试的一部分。Xcode 4.x 并非如此

已经创建了一个雷达来跟踪这个http://openradar.appspot.com/15859153

0 投票
5 回答
15397 浏览

ios - 无法通过 xcodebuild 从命令行执行测试

我正在尝试使用 iOS 测试用例的命令行构建和运行测试用例。我给出了以下命令:

它构建了应用程序,但没有运行测试用例。

有人可以帮忙吗?谢谢

0 投票
1 回答
943 浏览

cocoa-touch - 使用 NSDateFormatter 避免脆弱的单元测试

测试 NSDateFormatter 方法的最佳实践是什么?例如,假设我有一个方法:

我有两种方法可以考虑使用 Kiwi 测试此方法:

1)在单元测试中创建相同的格式化程序:

2)明确写出预期的输出:

现在,对我来说,#1 似乎有点多余。我知道测试会通过,因为我实际上是在单元测试中复制该方法。

方法#2 是一个非首发,因为它非常脆弱。它完全依赖于您所期望的测试设备当前语言环境。

所以我的问题是:是否有更合适的方法来测试这种方法,或者我应该继续使用测试方法#1。