OCmock 和 MKReverseGeocoder
我想测试一种使用反向地理编码的方法。我想做的是:
将地理编码器设置为我的控制器的属性
在 init 方法中创建地理编码器
在我想要测试的方法中调用地理编码器
在我的测试中用模拟替换地理编码器
问题是 MKReverseGeocoder 坐标属性是只读的,我只能在构造函数方法中设置它:
[[MKReverseGeocoder alloc] initWithCoordinate:coord]
当然,坐标仅在我想要测试的方法中可用。
有谁知道我如何可以模拟 MKReverseGeocoder 类吗?
提前致谢, 文森特.
I would like to test a method that uses reverse Geocoding. What i would like to do is :
set the geocoder as a property of my controller
create the geocoder in the init method
call the geocoder in the method i want to test
replace the geocoder with a mock in my test
The problem is that the MKReverseGeocoder coordinate property is read only, i can only set it in the constructor method :
[[MKReverseGeocoder alloc] initWithCoordinate:coord]
And of course the coordinates are only available in the method i want to test..
Does anyone knows how i could mock the MKReverseGeocoder class ?
Thanks in advance,
Vincent.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 Matt Gallagher 关于 Cocoa 应用程序单元测试的精彩文章。他为 NSObject 提供了类别扩展,允许您在测试时替换实例。我用它来做类似的事情。我认为你的测试看起来像这样:
Check out Matt Gallagher's great article on unit testing Cocoa applications. He provides a category extension to NSObject that allows you to replace instances at test time. I've used it to do something similar. I think your test would look something like this: