使用Realm时在iOS应用程序上运行基于Kiwi的测试的自发故障

时间:2015-05-20 22:21:11

标签: ios objective-c unit-testing realm kiwi

我正在开发一款具有300多个测试的Kiwi测试套件的应用。测试正在作为应用程序测试运行,其中主应用程序目标是测试包的主机。

我正在尝试将Realm添加到应用程序中,但是当我将Realm对象编译到应用程序目标中时,由于Kiwi匹配器无法创建,我的测试会自动失败。我注意到只有当我的RLMObject子类具有RLMArray属性时才会发生这种情况。删除它们可以解决问题。

控制台日志中的失败原因各不相同,但常见的是:

[FAILED], could not create matcher for -receiveMessagePattern:countType:count:
[FAILED], could not create matcher for -receive:withCountAtLeast

和我最喜欢的:

[FAILED], (null)

其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

事实证明,NSNumber子类中不允许使用无符号整数类型和RLMObject属性 - 我有这两个属性,并且它在单元测试套件的开头抛出异常。在单元测试期间(至少在使用Kiwi时)会吞下异常,所以我一开始并没有注意到这一点。修复属性类型修复了我的问题,虽然我仍然不确定为什么它导致所有其他测试失败。在异常之后,运行时可能处于错误状态。