我有一个移动 CLPlacemark
对象并使用它们的应用程序,我想对与它们交互的几个组件进行单元测试。为此,我希望能够使用生成具有已知值的模拟 CLPlacemark
的方法来阻止 MapKit 对真正的反向地理定位的调用。
CLPlacemark
只有一个初始化器(复制初始化器)。但是在documentation ,它说:
Placemark objects are typically generated by a CLGeocoder object, although you can also create them explicitly yourself.
但是,大多数成员都是只读的,因此我不确定如何创建具有自定义值的成员。是否可以在 Swift 中以这种方式设置内部属性?如果不是,关于它们在上述引文中的含义有什么想法吗?
最佳答案
我会使用 OCMock ( http://ocmock.org ) 来 stub 调用以创建 stub CLPlacemark 对象,并用您自己的值 stub 它们的 getter 方法。
id userDefaultsMock = OCMClassMock([CLPlacemark class]);
// set it up to return a specific value when stringForKey: is called
OCMStub([userDefaultsMock property]).andReturn(customValue);
关于ios - 使用自定义值创建 CLPlacemark 以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36609611/