问题标签 [octest]

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 回答
841 浏览

unit-testing - 使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?

我正在使用 Chris Hanson 出色的 Xcode 单元测试指南的混合体。

我的程序是一个(命令行)应用程序(它排除了使用可执行文件本身来运行测试),但我需要能够调试我的单元测试。

所以我所拥有的如下:

创建测试包和测试。创建新的测试目标,设置捆绑加载器和测试主机。添加主目标作为测试目标的直接依赖项。创建新的自定义可执行 otest。添加-SenTest self, MyTestBundle.octest, 参数。在环境中添加DYLD_LIBRARY_PATHDYLD_FRAMEWORK_PATH变量。

我的问题是,当我现在尝试通过运行可执行文件来调试测试时,测试引用的类不可用。例如,如果我为 Foo 类编写测试,一旦我在测试中实例化 Foo,我就会得到一个错误的访问异常。

如果我将 Foo.m 添加到测试目标,这将消失,但我宁愿不必将要测试的每个类都添加到测试目标和应用程序目标。

我假设我只需要添加某种变量,告诉 otest 在哪里可以找到我的主可执行文件中的类,但我不知道这个参数的名称是什么。

有人可以指出我解决这个问题的正确方向吗?

0 投票
3 回答
465 浏览

objective-c - Xcode 缺少内联测试结果

代码编辑器中到处都有失败测试的漂亮图片,例如在Peepcodes Objective-C for Rubyist 截屏视频和苹果自己的技术文档中:

在线显示测试结果
(来源:apple.com

当我构建我的测试目标时,我得到的只是右下角的一个红色小图标,说明出了点问题。单击它时,我会得到构建结果,我可以在其中开始寻找测试结果。

有人知道出了什么问题吗?

0 投票
6 回答
56046 浏览

cocoa - 为什么单元测试中的代码找不到捆绑资源?

我正在单元测试的一些代码需要加载资源文件。它包含以下行:

在应用程序中它运行得很好,但是当由单元测试框架运行时pathForResource:返回 nil,这意味着它无法找到foo.txt.

我已经确保它foo.txt包含在单元测试目标的Copy Bundle Resources构建阶段,为什么它找不到该文件?

0 投票
2 回答
1335 浏览

objective-c - iPhone Nibs 如何使用逻辑测试进行单元测试?

单元测试视图控制器似乎是 iPhone 开发中非常重要的一部分(参见这篇文章)。然而,这需要从 Nib 初始化控制器,我发现在逻辑测试中无法正确完成。

在逻辑测试中从捆绑包中加载资源(请参阅此问题)可以正常工作。甚至可以像这样加载 Nib:

. 但是,它仅在 nib 仅包含 UIViews 时才有效。其他视图(我尝试了 UITableView 和 UISwitch)导致 otest 失败,代码为 138。

是否可以使用逻辑测试来测试我的笔尖,如果可以,如何?

0 投票
1 回答
354 浏览

iphone - XCode 从 3.2.3 升级到 3.2.4 后,单元测试不再起作用

我刚刚将我的 XCode 更新到 3.2.4,结果发现我的单元测试不再有效。我已经按照 Scott Densmore的说明配置了目标和可执行文件,以便能够调试我的测试。

我确实将我的测试目标 (LogicTests) 的 Base SDK 更改为 iOS4.1,并更新了我的可执行文件 (otest) 的 otest 脚本的路径。

然而,即使我的应用程序在 iPhone 模拟器中运行,执行单元测试总是会崩溃。以下是我尝试运行测试时控制台必须说的内容:

我很感激你能提供的任何帮助!提前致谢。

干杯,乔治

0 投票
0 回答
258 浏览

xcode - XCode、单元测试和实现文件

我最终决定在我的简单 iPhone 应用程序中添加一些单元测试。有一件事有点烦人,那就是必须在测试包中包含所有依赖项。

但是,也许我做错了。我真的需要将我所有的依赖项(实现文件、框架)添加到测试包中以进行我需要测试的所有内容吗?

当我在编译后添加测试,添加缺少的依赖项,编译等......直到测试通过时,这很烦人但仍然很简单。但是,如果我按照我可能一开始就应该做的那样先做这个测试呢?我的测试包将设置所有依赖项,然后当我在实际的应用程序包中实现它时,我必须确保添加所有依赖项,以便应用程序不会崩溃。所以在这里我有一个场景,我的测试都通过了,但是由于缺少实现文件(或其他),主应用程序崩溃了。我想我可以勤奋并记得在创建它们时添加它们,但是......我倾向于忘记事情。

应用程序测试可以在这里工作吗?

所以我很想知道其他人如何迭代这个过程?有没有更好的办法?我可以以某种方式链接到主应用程序包吗?

0 投票
0 回答
100 浏览

ios - 链接 AssetsLibrary.framework 后逻辑测试挂在 -[MKTileCache init] ()

我的 iOS 应用程序有一堆简单的逻辑测试,我们使用 buildot 在持续集成中运行。

最近我开始将 AssetsLibrary 框架链接到主应用程序和逻辑测试。逻辑测试包括来自主应用程序的类,这些类在某些方法中使用框架,但在逻辑测试中不调用这些类。

从那时起,我们的 buildbot 上的单元测试就挂了,在这个过程的早期。发生这种情况时,Gdb'ing to octest,MKTileCache 中似乎存在某种线程死锁(我不在任何地方使用):

有没有人见过这样的东西?

0 投票
1 回答
790 浏览

objective-c - 无法从主包中按名称加载 Nib 文件

似乎我的 nib 文件包含在我的测试目标中,它们不存在于主包中,因此当我从主包中按其名称加载 nib 时,我的应用程序崩溃了。我要么需要找到包含我的 nib 文件的正确包,要么需要使用路径加载 nib。

有没有人有任何一个解决方案?[NSBundle bundleForClass:[self class]]不起作用。我认为笔尖和类文件不在同一个包中

0 投票
1 回答
1111 浏览

objective-c - Objective C中的单元测试->如何复制sqlite数据库

我在启动和运行我的测试套件时遇到了一些麻烦。基本上我向我的应用程序添加了一个新目标,如下所示: 单元测试应用程序

当我想针对我的 DA 类和 sqlite-database 进行测试时,我使用以下片段来复制数据库:

但看起来,NSBundle 并没有按预期返回数据库的路径。

有一个简单的解决方法吗?在过去的几个小时里我没能修好它——所以我的下一个镜头就是你们。

任何帮助或建议都非常感谢!

非常感谢!

汤姆

0 投票
1 回答
2481 浏览

ios - 如何测试依赖于 UIUserInterfaceIdiom (ios) 的代码

我有一些 Objective-C [i-os] 代码,我想使用 XCode 运行单元测试。它根据设备类型访问不同的元数据,使用:

[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

我遇到的问题是,当我运行单元测试时,这个结果总是正确的。理想情况下,能够在测试运行时设置它会很棒。

我猜它可以完成的方式是创建一个封装设备检查的类并模拟它以进行测试。但我认为是否有更好的解决方案可能值得一看。

作为参考,一篇不错的博客文章,包含许多链接、Apple单元测试指南单元测试示例代码项目