问题标签 [ochamcrest]

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

objective-c - 比较 [class] 不起作用?

我有一个单元测试:

失败了:

我有几个其他测试使用相同的实例检查不同的工作类 - 但我无法确定为什么这不起作用。深入研究:

调试器报告:

注意它怎么看不到这[Track class]是一个类型的类Track?当我将相同的逻辑应用于其他通过的单元测试时,它们都报告了正确的类名。

感觉它在运行时没有类元数据,但为什么呢?

还有一些案例:

0 投票
2 回答
888 浏览

ios - 一些涉及块方法和 OCMockito 的验证

我正在使用 OCMockito,我想在我的 ViewController 中测试一个使用 NetworkFetcher 对象和块的方法:

特别是,我想模拟fetchInfo:,以便它返回一个虚拟result数组而不访问网络,并验证该reloadData方法是否已在 上调用UITableView并且模型是它应该是什么。

由于这段代码是异步的,我假设我应该以某种方式捕获该块并从我的测试中手动调用它。

我怎样才能做到这一点?

0 投票
1 回答
564 浏览

ios - 单元测试 UIDatePicker 时出现运行时异常([UIPickerColumnView isDragging:] 无法识别的选择器)

我创建了一个UIViewController带有UIDatePicker插座的相应nib文件,并在界面生成器中正确设置了插座。

我正在尝试运行以下单元测试(使用OCHamcrest匹配器库)。

其中sut(对于“被测系统”)是被单元测试的视图控制器。

但是,我不断收到此运行时异常:

whereUIPickerColumnView不是创建的类(它似乎是 中使用的非公共类UIKit)。

我尝试UIDatePicker从笔尖中删除并以编程方式创建它:

但是,也会发生同样的异常。

异常断点,这里是错误线程:

如何防止在单元测试时引发此异常UIDatePicker

0 投票
2 回答
539 浏览

swift - 与 Swift 一起使用的 iOS/Mac OS 流畅匹配框架?

是否有适用于 Swift 代码的流畅匹配 API?领先的 Objective-C 匹配器候选者似乎是 OCHamcrest 和 Expecta,它们都依赖于复杂的宏(根据文档)不适用于 Swift 代码,例如

(OCHamcrest)

(预期)

是否有另一种适用于 Swift 的替代方案,或者以某种方式包装其中一个或另一个以便它们可以与 Swift 一起使用?


ETA:对于未来的读者——我查看了SwiftHamcrest(根据Jon Reid 的回答),但目前我已经选择了Quick/Nimble

0 投票
0 回答
805 浏览

objective-c - 运行单元测试以查看 UIButton 是否通过 Storyboard 连接到 IBAction

我正在尝试在 Xcode 中为我的视图控制器创建一些测试,包括检查 IBOutlets 和 IBActions 的测试。如果我使用基本视图控制器 + xib 文件,这些工作正常,但如果我使用 Storyboard 文件,那么这些操作似乎不会被连接起来。

这是设置:

然后是测试(XCTest、OCHamcrest 和 OCMock,它们都失败了):

这显然与我正在使用的测试框架无关,而是与它认为按钮没有任何连接到它们的操作有关。然而,当我运行应用程序时,按钮工作正常。

我错过了什么吗?

0 投票
2 回答
1020 浏览

ios - 使用 OCMockito 模拟无效的方法

在使用 OCMockito 时,以下效果很好:

但是,当我在具有多个参数的方法上尝试相同的操作时(请参见下面的代码),我收到“参数类型 'void' 不完整”编译器错误。

有谁知道这样做的正确方法?

编辑

我提出这个问题的初衷是解决在尝试以下操作时出现编译器错误的问题:

我试图模拟的方法的方法签名是:

我实际上想要做的是模拟一个void方法的实现。(给定一个void方法,用一个块模拟该方法的实现。出于我的目的,该方法返回一个完成块,它接受两个参数。我想构造这两个参数,然后在模拟的内部运行完成块出实施块。)

0 投票
1 回答
166 浏览

ios - pod安装后找不到

在我的项目的 podspec 中,我有:

我不断收到上述错误。在Pods/Headers,我注意到以下路径:

另外,我的HEADER SEARCH PATHS. 有没有人遇到过这个问题?

0 投票
1 回答
112 浏览

objective-c - OCMockito / OCHamcrest 验证数组包含对象属性

我正在创建一个添加一些本地通知的应用程序。这是我的测试

这是正确的,验证成功。但我需要验证我的 UILocalNotification 对象属性alertBody是否在withoutFriends数组中。有办法吗?