首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递任何CGSize的OCMock

传递任何CGSize的OCMock
EN

Stack Overflow用户
提问于 2013-06-04 19:00:51
回答 3查看 830关注 0票数 1

我正在使用OCMock,并在我的一个测试中尝试这样做:

代码语言:javascript
运行
复制
[[mockScrollView expect] setContentSize:[OCMArg any]];

问题是[OCMArg any]返回一个id类型,而我想使用任何CGSize,因为我不知道它的确切值。我如何传递这个参数呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-05 04:26:09

在2.2版的OCMock中,您可以使用ignoringNonObjectArgs

代码语言:javascript
运行
复制
[[mockScrollView expect] ignoringNonObjectArgs] setContentSize:dummySize];
票数 5
EN

Stack Overflow用户

发布于 2013-06-05 00:55:22

使用OCMock是无法做到这一点的。

另一种选择是创建一个手工制作的模拟。这是UIScrollView的一个子类,您可以在其中覆盖setContentSize:,将给定的大小分配给稍后可以检查的ivar。

另一个更简单的选择是使用真实的UIScrollView,并直接检查contentSize是否为您所期望的。我会选择这个解决方案。

票数 2
EN

Stack Overflow用户

发布于 2013-06-05 01:16:05

遗憾的是,看起来您必须扩展OCMock才能实现这一点。你可以遵循这个模式。

OCMArg.h

代码语言:javascript
运行
复制
// Add this:
+ (CGSize)anyCGSize;

OCMArg.c

代码语言:javascript
运行
复制
// Add this:
+ (CGSize)anyCGSize
{
    return CGSizeMake(0.1245, 5.6789);
}

// Edit this method:
+ (id)resolveSpecialValues:(NSValue *)value
{
    const char *type = [value objCType];

    // Add this:
    if(type[0] == '{')
    {
        NSString *typeString = [[[NSString alloc] initWithCString:type encoding:NSUTF8StringEncoding] autorelease];
        if ([typeString rangeOfString:@"CGSize"].location != NSNotFound)
        {
            CGSize size = [value CGSizeValue];
            if (CGSizeEqualToSize(size, CGSizeMake(0.1245, 5.6789)))
            {
                return [OCMArg any];
            }
        }
    }

    // Existing code stays the same...
    if(type[0] == '^')
    {
        void *pointer = [value pointerValue];
        if(pointer == (void *)0x01234567)
            return [OCMArg any];
        if((pointer != NULL) && (object_getClass((id)pointer) == [OCMPassByRefSetter class]))
            return (id)pointer;
    }
    return value;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16916115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档