问题标签 [gh-unit]

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

iphone - 使用 GHUnit 进行单元测试

我是 iPhone 开发的新手。我已经集成了框架 GHUnitIOS 来测试我的应用程序。但我还没有找到有关如何实施单元测试的文档(这是我第一次进行单元测试)。

有人可以帮助我从 GHUnit、文档、示例、解释开始吗?

0 投票
4 回答
1722 浏览

iphone - 一个 iOS 应用程序甚至可以访问另一个应用程序的 Caches 目录吗?

我正在用 GHUnit 编写单元测试。我想检查是否正在另一个应用程序的库目录中的缓存目录中生成文件。这是可行的,还是阻止应用程序访问彼此的库目录?如果是这样,是否有任何可能的解决方法来为此创建单元测试?我可以将生成的文件存储在不同的目录中,例如 Documents,还是没有帮助?

0 投票
0 回答
674 浏览

objective-c - 针对使用库的应用程序进行 GHUnit 测试

我正在尝试基于我拥有的 iOS 应用程序构建一些 GHUnit 测试,该应用程序使用 ProtocolBuffers,作为库访问。我遇到了很多链接器问题,通过将应用程序中的源文件添加到“编译源”构建阶段,我已经慢慢解决了这些问题,但是现在我已经在应用程序中添加了所有相关的内容,我发现我似乎无法链接到 ProtocolBuffers。

我已经阅读了用于单元测试 Objective-C 代码的 GH-Unit,为什么会出现链接错误?其中海报似乎已经根据底部的自述文件更新修复了他的情况。因为我有一个混合 - 我将 GHUnit 与应用程序和库链接,我开始假设除了将所有应用程序源文件添加到我的“编译源”构建阶段之外,我还应该添加 ProtocolBuffers 输出作为依赖项.

这没有奏效。我继续收到链接器错误,这些错误清楚地表明链接器没有从 ProtocolBuffers 库中找到符号。我无法添加 ProtocolBuffers 源文件,因为它们不在此项目中,甚至将 #import "ProtocolBuffers.h" 添加到我的 tests.pch 文件中也不起作用。

我现在很难过。有什么建议么?GHUnit 看起来很棒,但是,因为它似乎总是与 Xcode/ObjC 测试工具一起使用,所以进入“Hello World”会比我预期的更麻烦。

0 投票
2 回答
1402 浏览

ios - Xcode 4 中 GHUnit + Hudson/Jenkins 的问题

我已经按照这个非常好的教程介绍了如何在 Xcode 4 中配置 GHUnit 并将其与 Hudson/Jenkins 集成。

当所有测试用例都通过时,一切似乎都运行良好,但是当测试用例失败时,Hudson/Jenkins 不会创建“测试结果”,您实际上可以在其中检查有关失败的测试用例的详细信息。

检查控制台输出我看到了这个:

可以在此处找到正在执行的脚本。

它在詹金斯和哈德森都失败了,但有同样的例外。

有谁知道如何解决这个问题?

谢谢。

0 投票
2 回答
1616 浏览

ios4 - 应用程序类的 GHUnit 链接器错误

我正在尝试运行 GHUnit 测试来测试 setter 是否确实适用于我的应用程序中的 NSManagedObject 对象。我的应用程序称为 Machine,我的 GHUnit 目标称为 Tests。我已将 Machine 添加为 Tests 目标的依赖项。我在测试中的对象称为目标。这是代码,链接中的错误如下所示。

@结尾

ld /Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/Machine-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/Debug-iphonesimulator/Tests.app/Tests normal i386 cd /Users/dlwhitehurst/Development/Coding/Objective-C/iPad/machine setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneSimulator .platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3。sdk -L/Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/Machine-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/Debug-iphonesimulator -F/Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/Machine-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/ Debug-iphonesimulator -F/Users/dlwhitehurst/Development/Frameworks -filelist /Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/Machine-cscchzscengbcmcmeyzxlkbhumdn/Build/Intermediates/Machine.build/Debug-iphonesimulator/Tests.build/Objects- normal/i386/Tests.LinkFileList -mmacosx-version-min=10.6 -ObjC -all_load -Xlinker -objc_abi_version -Xlinker 2 -framework CoreData -framework GHUnitIOS -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/dlwhitehurst/Library/开发人员/Xcode/DerivedData/Machine-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/Debug-iphonesimulator/Tests.app/Tests应用程序/测试应用程序/测试LinkFileList -mmacosx-version-min=10.6 -ObjC -all_load -Xlinker -objc_abi_version -Xlinker 2 -framework CoreData -framework GHUnitIOS -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/机器-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/Debug-iphonesimulator/Tests.app/TestsLinkFileList -mmacosx-version-min=10.6 -ObjC -all_load -Xlinker -objc_abi_version -Xlinker 2 -framework CoreData -framework GHUnitIOS -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/dlwhitehurst/Library/Developer/Xcode/DerivedData/机器-cscchzscengbcmcmeyzxlkbhumdn/Build/Products/Debug-iphonesimulator/Tests.app/Tests

体系结构 i386 的未定义符号:“_OBJC_CLASS_$_Goal”,引用自:ControllerTests.o 中的 objc-class-ref ld:未找到体系结构 i386 collect2 的符号:ld 返回 1 个退出状态

0 投票
1 回答
602 浏览

command-line - 如何在命令行 GHUnit 中使用 UIApplicationDelegate?

从模拟器运行和从命令行运行之间的 GHUnit 结果存在差异。如何在 cli 中使用 UIApplicationDelegate?

在我的示例应用程序中 - 标签 stackoverflow-6479906。我想将苹果的OCUnit示例转移到GHUnit之一。

预计:

两个“appDelegate”都不为零。

当前的:

从模拟器运行工作正常。但是从 cli 运行会引发异常。https://gist.github.com/1046753

参考:苹果的单元测试示例

注意:我阅读了异步 NSURLConnection 示例,但在我的 UIApplicationDelegate 案例中没有找到解决方案和调整。

0 投票
1 回答
532 浏览

objective-c - GHAssertThrowsSpecific 找不到类型 NSRangeException

我第一次使用 Xcode 4 和 GHUnit 编写一些单元测试。所有的建议似乎都建议使用 GHUnit 而不是 OCUnit。

我有一个名为“myList”的自定义集合对象,并传递一条消息以在index:-1. 因此,它正确地抛出了一个 NSRangeException (来自底层的可变数组)。

我正在努力用 GHAssertThrowsSpecific 断言来解决这个问题。

以下代码行不会编译说“未知类型名称'NSRangeException'。

#importing "Foundation/NSException.h"在 NSRangeException 似乎被定义的地方。如果我将其更改为:

然后编译得很好并且断言有效,所以它与 NSRangeException 有关。

如果我查看标题, NSRangeException 似乎被定义为NSString * const在这种情况下,我如何尝试断言我期望捕获它。

我显然很愚蠢,因为我看不出我做错了什么。

0 投票
3 回答
1086 浏览

iphone - GHUnit 在模拟器中运行,但不在 iPhone 上

所以我今天一直在玩 GHUnit,并且有一些很好的测试在 XCode4 的模拟器中运行得很好。当我在 iPhone 上运行它们时,出现以下错误:

在你问之前,是的,我有链接器选项-ObjC-all_load设置,正如我所说,它在模拟器中运行良好,那么为什么不是 iPhone 本身呢?

困惑!

0 投票
1 回答
553 浏览

ios - 构建到设备但不在模拟器中时出现 LLVM 错误

当我尝试将测试目标构建到我的 iPad1 (4.3.5) 或 iPhone4 (4.3.5) 时,我从 Xcode 4 (Build 4A304a) 收到以下错误:

但不是当测试目标切换到在模拟器中构建时。

无聊的代码行是

(对象已重命名以保护无辜者;-))但我可以说它是一个单身人士。

我搜索了谷歌并没有得到任何与此错误相关的信息。

提前感谢你,伊恩。

0 投票
4 回答
1274 浏览

objective-c - 为什么 GHUnit 的异步测试中的错误断言会使应用程序崩溃,而不仅仅是测试失败?

这个问题的观点很少,还没有答案。如果您有关于如何改变这个问题以获得更多眼球的建议,我很高兴听到他们的声音。干杯!

GHAsyncTestCase用来测试我的一个习惯NSOperation。我将测试用例设置为操作对象的委托,并在didFinishAsyncOperation完成后调用主线程。

当断言失败时,它会抛出一个异常,该异常应该被测试用例捕获以将测试呈现为“失败”。但是,一旦断言失败,我的应用程序就会被 Xcode 中止,而不是这种预期的行为。

*** 由于未捕获的异常“GHTestFailureException”而终止应用程序,原因:“NO”应该为 TRUE。这应该会触发失败的测试,但会导致我的应用程序崩溃。

我显然做错了什么。谁能告诉我?