gpt4 book ai didi

ios4 - 测试台异常退出,代码为 134,在 iOS 4 上使用 OCMock 验证

转载 作者:行者123 更新时间:2023-12-05 00:47:18 25 4
gpt4 key购买 nike

我正在尝试将 OCMock 添加到我的 iOS 4 项目中。为了测试它,我有一个类 Person 和一个方法,-hello。当我运行这个测试时:

- (void) testMock {
id mock = [OCMockObject mockForClass:[Person class]];
[[mock expect] hello];

[mock hello];

[mock verify];
}

一切正常,构建成功。如果我取消 hello 调用,如下所示:

- (void) testMock {
id mock = [OCMockObject mockForClass:[Person class]];
[[mock expect] hello];

[mock verify];
}

我希望收到一条错误消息,告诉我没有在模拟上调用我的预期方法。相反,我收到一条关于测试台崩溃的神秘消息:

/Developer/Tools/RunPlatformUnitTests.include:451:0 Test rig '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/Developer/usr/bin/otest' exited abnormally with code 134 (it may have crashed).

当没有调用预期的方法时,这 crash 正常吗?是不是我的配置不好?

最佳答案

你没有配置不好,这是Apple在发布iOS4时在模拟器SDK中引入的一个错误。基本上,如果使用 NSInvocation 对象调用的代码抛出异常,则该异常是不可捕获的。当它第一次出现在这里时,我写过这个问题:

http://pivotallabs.com/users/adam/blog/articles/1302-objective-c-exceptions-thrown-inside-methods-invoked-via-nsinvocation-are-uncatchable

不幸的是,这个错误影响了 OCMock,Apple 并没有表现出修复它的兴趣。许多人提交了错误报告,但无济于事。

我知道这不太舒服,但是使用 Cedar 时您会收到稍微好一点的错误消息用于测试(我相信 GTM 也是如此)。

关于ios4 - 测试台异常退出,代码为 134,在 iOS 4 上使用 OCMock 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com