我有一个应用程序可以移动CLPlacemark
个对象并使用它们,我想对几个与它们交互的组件进行单元测试。为此,我希望能够使用生成具有已知值的模拟CLPlacemark
的方法从MapKit中调用实际的反向地理定位。
CLPlacemark
只有一个初始值设定项(复制初始值设定项)。但在documentation中,它说:
地标对象通常由CLGeocoder对象生成,但您也可以自己创建它们。
但是,大多数成员都是只读的,因此我不确定如何使用自定义值创建成员。是否可以在Swift中以这种方式设置内部属性?如果没有,任何关于它们在上述引文中的含义的想法?
答案 0 :(得分:0)
我会使用OCMock(http://ocmock.org)来存根调用以创建存根CLPlacemark对象,并使用您自己的值来存根他们的getter方法。
id userDefaultsMock = OCMClassMock([CLPlacemark class]);
// set it up to return a specific value when stringForKey: is called
OCMStub([userDefaultsMock property]).andReturn(customValue);