gpt4 book ai didi

iphone - OCMock 一个 NSOperation

转载 作者:太空狗 更新时间:2023-10-30 03:54:12 30 4
gpt4 key购买 nike

我正在尝试编写一些单元测试来测试我们正在编写的一些自定义 NSOperations。我想做的是创建一个 NSOperation 的 Mock 并将其放在 NSOperationQueue 上,然后等待它完成。我知道我可以混合这些方法并且根本不使用 OCMock,但我真的不想那样做。我想使用 OCMock。我尝试运行的代码如下所示:

MYOperation *operation = [MYOperation new];
id mockOperation = [OCMockObject partialMockForObject:operation];
[NSOperationQueue *queue = [NSOperationQueue new];
[queue setMaxConcurrentOperationCount:1];
[queue addOperation:mockOperation];

当单元测试到达这一行时:

[queue addOperation:mockOperation];

我收到一个对已释放对象异常的调用。有人对我如何克服这个问题有任何建议吗?

最佳答案

如果您使用的是 ARC,operation 可能会在您创建 mock 后立即释放,因为不会再次访问它。如果将其更改为此,它应该会修复错误:

[queue addOperation:operation];

...无论如何您都应该这样做——您正在测试您的对象,而不是模拟对象。

关于iphone - OCMock 一个 NSOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10653531/

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