当前位置:  开发笔记 > IOS > 正文

使用带有OCMock或Hamcrest的结构

如何解决《使用带有OCMock或Hamcrest的结构》经验,为你挑选了0个好方法。

我正在遇到路障,我想知道这里出色的集体思想是否有帮助.在ObjC CocoaTouch中,我试图模拟一个接受struct参数并返回结构的对象.OCMock正在咳嗽一个发球,所以我尝试用Hamcrest匹配器包裹.没死.我正在测试的函数/方法看起来像这样:

- (CLLocationCoordinate2D)pixelToLatLong:(CGPoint)aPoint;

我使用这样的代码:

#define OCMOCK_STRUCT(atype, variable) [NSValue value:&variable withObjCType:@encode(atype)]
-(void) testMyWidget
{
    CLLocationCoordinate2D ulLL = (CLLocationCoordinate2D){123,456};
    CLLocationCoordinate2D lrLL = (CLLocationCoordinate2D){654,321};
    [[[(id)myObj expect] andReturn:OCMOCK_STRUCT(CLLocationCoordinate2D, ulLL)] pixelToLatLong:(CGPoint){0,0}];
    [[[(id)myObj expect] andReturn:OCMOCK_STRUCT(CLLocationCoordinate2D, lrLL)] pixelToLatLong:(CGPoint){320,460}];//lower right point
}

那有点儿.因此,在我的测试中,我正在测试我进行必要的编辑以获得绿色条...错误..构建信息窗口中的绿色按钮.当我确定我的测试应该通过时,我会得到断言失败的错误.这些错误告诉我该方法被意外调用,并将这些结构的值列为问号.我尝试用Hamcrest匹配器包裹结构但是我无处可去.我正准备打破我的调试器,这无疑会告诉我什么是错的.这里有人和OCMock/Hamcrest和结构有类似的麻烦吗?如果是这样,处理这些类型的最佳方法是什么?

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有