gpt4 book ai didi

objective-c - 在 OCMock 中使用 block 期望

转载 作者:太空狗 更新时间:2023-10-30 04:01:32 25 4
gpt4 key购买 nike

我正在使用 GHUnit 和 OCMock 在我的 iOS 应用中做一些测试工作。

所以我在整合它们时遇到了一些麻烦。

下面的代码运行良好。

NSString *s = [NSString stringWithString:@"122"];
id mock = [OCMockObject partialMockForObject:s];
[[[mock stub] andReturn:@"255"] capitalizedString];
NSString *returnValue = [mock capitalizedString];
GHAssertEqualObjects(returnValue, @"255", @"Should be equal");
[mock verify];

但是当我改变 [[[mock stub] andReturn:@"255"] capitalizedString];进入

[[[mock stub] andDo:^(NSInvocation *invocation) {
[invocation setReturnValue:@"255"];
}] capitalizedString];

我收到一条错误消息“原因:‘NSCFString’应等于‘255’。应该相等”

我认为这两个语句应该做完全相同的事情。我错了吗?

最佳答案

setReturnValue: 需要一个指向返回值的指针,因此您的 block 应该是:

void (^theBlock)(NSInvocation *) = ^(NSInvocation *invocation) {
NSString *capitalizedString = @"255";
[invocation setReturnValue:&capitalizedString];
};

关于objective-c - 在 OCMock 中使用 block 期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5443009/

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