相关疑难解决方法(0)

使用带有OCMock或Hamcrest的结构

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

- (CLLocationCoordinate2D)pixelToLatLong:(CGPoint)aPoint;
Run Code Online (Sandbox Code Playgroud)

我使用这样的代码:

#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
}
Run Code Online (Sandbox Code Playgroud)

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

iphone cocoa-touch objective-c hamcrest ocmock

9
推荐指数
1
解决办法
2150
查看次数

标签 统计

cocoa-touch ×1

hamcrest ×1

iphone ×1

objective-c ×1

ocmock ×1