问题描述
我想知道使用单例的正确方法是什么。
我已阅读以下Mocking Singletons
该帖子很旧,现在我们在 Ocmock
的帮助下使用 OCMPartialMock
,例如:
@interface ManagerVisitorTests : XCTestCase
@property (nonatomic) id partialManager;
@property (nonatomic) id partialHelper;
@end
@implementation ManagerVisitorTests
static Nsstring *const key = @"key";
- (void)initSDKWithoutVisitor {
self.partialManager = OCMPartialMock([manager sharedManager]);
NSDictionary *decodedAppkey = @{};
OCMStub([self.partialManager methods:Ocmock_ANY]).andReturn(decodedAppkey);
}
- (void)testinitNoVisitor {
[self initSDKWithoutVisitor];
[self.partialManager initSDKWithoutVisitor:key];
XCTAssertFalse([manager sharedInstance].isInitCalled,@"called");
//OR
XCTAssertFalse([self.partialManager sharedInstance].isInitCalled,@"called");
[self stopAllMocks];
}
- (void)stopAllMocks {
[self.partialManager stopMocking];
[self.partialHelper stopMocking];
self.partialManager = nil;
self.partialHelper = nil;
}
@end
我必须承认,我并不完全理解 Ocmock
在底层是如何工作的,但似乎 OCMPartialMock
应该根据文档完成这项工作 这意味着使用对真实对象的引用,甚至包括对象调用自身的方法中的self,也会受到存根和期望的影响
请告知对于单身情况是否是一种好方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)