问题标签 [ocunit]
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.
unit-testing - OCUnit:如何在不启动 iPhone 模拟器的情况下运行测试?
我正在关注iOS 开发指南:单元测试应用程序。但是,当我尝试构建 (Command+B)LogicTests
目标(“设置逻辑测试”的第 8 步)时,我收到错误消息:“选定的运行目标对此操作无效。”
由于我将应用程序目标添加到LogicTests
的目标依赖项中,因此我可以使用 Command+U 运行单元测试,但这也会启动 iPhone 模拟器。
为了节省时间和资源,是否可以在不启动 iPhone 模拟器的情况下运行 OCUnit 测试(逻辑和应用程序测试)?
iphone - 如何使用 Xcode 4 和 OCUnit 运行应用程序测试?
我正在使用 OCUnit 编写单元测试,我尝试过 GHUnit,但它不适合我的情况。
我确实想运行应用程序测试,因为我的代码严重依赖于我的 ApplicationDelegate 实例。但我只能弄清楚如何运行逻辑测试而不是应用程序测试。
这是来自模板的示例测试代码,但我的测试失败(没有应用程序委托)或根本没有运行测试代码。
我从苹果那里找到了关于如何设置测试的指南,但它不适用于 Xcode 4
objective-c - Xcode 4 中的 SenTestingKit:异步测试?
我一直在寻找一种方法来使用 SenTestingKit 在我的客户端代码和我们的服务器之间进行一些集成测试。我没有运气。似乎一旦代码在方法中运行,对象就会被销毁。这意味着任何异步响应都不会调用选择器。
问题:
- 有没有办法让对象保持实例化,直到我认为合适的时候销毁它 - 即。测试完成后?
- 如果不是,我怎么能创建一个阻塞(即同步动作)直到测试完成的类?
仅供参考,我正在运行一个我知道预期结果的测试服务器。
我已经做了一些谷歌搜索,但还没有看到关于这一点的任何证据。我相信其他人也会感兴趣。
nsuserdefaults - OCUnit 在哪里存储 NSUserDefaults?
我读了问题Easy way to see saved NSUserDefaults?
我找到了应用程序的 .plist 文件,但测试包的文件在哪里?
xcode - 使用通知的设计的单元测试
我在测试一些使用通知的逻辑时遇到了困难。我已经阅读了有关强制NSNotifications
发送特定内容的信息,但这并不能真正解决我所看到的问题。
[SomeObject PerformAsyncOperation]
创建一个NSURLRequest
并将自己设置为响应委托。根据响应的内容,将SomeObject
成功或失败发布NSNotification
到默认值NSNotificationCenter
。
我的测试的问题是,在PerformAsyncOperation
调用之后,测试不会等待发送响应。相反,它继续断言 - 失败,因为请求/响应没有时间发送/接收/解析。
这是代码:
我已经尝试在调用后使线程休眠PerformAsyncOperation
,以及一个空while (!operationCompleted)
循环。两者都不起作用 - 休眠线程仍然使断言失败,并且 while 循环永远不会退出。我也尝试将断言移入success:
and failure:
,但是因为 OCUnit 期望每个方法都是测试方法,所以它只是立即执行所有三个方法并退出(不等待NSURLRequest
' 的响应,这就是练习的重点! )。
任何想法或见解将不胜感激。谢谢!
ios - Xcode 4 单元测试链接器错误
注意:“使用 GHUnit”不是这个问题的可接受答案。我知道大多数人认为 GHUnit 比 Xcode4 OCUnit 更好,但这不是我要问的。我将单独评估。
我有一个从头开始在 Xcode4 中创建的 Xcode 项目,在创建期间选中了“包括单元测试”复选框。我还包括了一些我在以前的项目中开发的库。它们通过“将文件添加到 x...”对话框添加到项目中,并且仅添加到应用程序目标(而不是测试目标)。它们在运行应用程序时工作正常,所以我认为它们设置正确。我还为这个项目编写了许多不同的类。
我的测试文件以标准方式设置,名为 [AppName]Tests.h 和 .m。
标题代码:
#import < SenTestingKit/SenTestingKit.h >
实现代码:
#import "[AppName]Tests.h"
这只是基本的骨架。只要我不导入任何其他文件,它在我的其他项目中以及在这个项目中都可以正常工作。当我从该项目导入另一个文件并使用它时,我在 Xcode 输出日志中看到以下错误:
The test bundle at /Users/[Me]/Library/Developer/Xcode/DerivedData/[AppName]-dwuuuwcpmdqxqmgxomoniplwhlpb/Build/Products/Debug-iphonesimulator/[AppName]Tests.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.
我已经验证过:
- 我使用的所有框架都已添加到应用程序和测试目标的“Link Binary with Libraries”中。
- 测试目标已配置为正确构建,并且我的所有测试方法都显示在 Edit Scheme...->Test->Tests
- 除此之外的所有问题都已解决,并且没有编译器错误。
- 这里讨论的所有设置 都设置正确,并且与我测试正确的其他项目相同。
关于可能导致这种情况的任何想法?
iphone - 如何在命令行中捕获 OCUnit 的测试失败/成功?
我的期望:#构建成功#和#测试失败#
实际结果:只有 # Build Succeeded #
如何在命令行中获得失败/成功?[iphone,objective-c,xcode4,OCUnit]
我是 OCUnit 和 Xcode4 的新手。我创建项目: https ://github.com/sanemat/HogeHoge 这是 xcode4 的支架代码。我在 xcode gui 中运行测试,#Test Failed# 成功出现。在命令行中(我想使用 jenkins),我使用以下命令。
我看到 #Build Succeeded # 然后完成了。我想运行测试并得到它的结果。如何?
编辑:
我找到了 BPOCUnitXMLReporter。这是针对 MacOS 的。我分叉并调整了 iOS。
objective-c - 由于 NSAssert 断言失败,测试失败
我刚刚开始为我的 iOS 应用程序编写测试,我正在使用 Xcode4 和 OCUnit。我现在正在为一段代码编写一个测试,如果已经分配了静态变量,则该代码应该抛出异常,如下所示:
在我的测试STAssertThrows
中,如果实例已经存在,我会检查上面的代码是否会引发错误。问题是这个测试失败了:
因此,即使行为正是我想要的,测试也失败了。但不应该STAssertThrows
抓住这个吗?也许我不应该以这种方式将 NSAssert 与一起使用STAssertThrows
?
objective-c - 使用 XCode 4 进行单元测试的链接错误?
我想为我的 XCode 应用程序中的类编写一些逻辑单元测试。在 Xcode 4 中,我在 Project Navigator 中单击项目名称,然后从底部单击 Add Target。我在Other下选择了“Cocoa Touch Unit Testing Bundle”,给新目标一个“tests”的“product name”,然后完成。
因为我要测试的类被编译为我现有应用程序目标的一部分,所以对于我的新“测试”目标,我立即转到“构建阶段”选项卡并将我现有的应用程序目标添加为唯一的目标依赖项。
然后我转到创建的 tests.m 文件,导入我想要测试的类(在它下面ReleasePlanManager
,并调用它的方法之一。但是链接器失败并出现如下错误:
所以找不到类,即使(根据我的理解)添加应用程序目标(它是它的一部分)就足够了?
任何帮助将不胜感激。谢谢!
xcode - 如何使用 Xcode 4 运行单元测试的子集
Xcode 4 引入了方案特性。您可以使用它为您的项目创建不同的方案。在方案中的测试项下,您可以选择要运行的测试。但是,我发现所有测试都运行了,而不仅仅是我选择的那些。我怎样才能只运行我的单元测试的一个子集?
我怀疑我的问题与我的项目和单元测试最初是使用 Xcode 3 创建并导入 Xcode 4 的事实有关。
之前有一个关于这类问题的问题,但我的问题是关于 Xcode 4.0.2。