辛格尔顿不使用XCTests – iOS

我正在为我的一个实用方法写unit testing。 此实用程序方法在内部根据单例对象上设置的属性获取一些值。 在我的unit testing中,在我调用这个实用程序方法之前,我正在设置会话对象值并打印以确认它已被设置:

- (void)testMyMethod { [MySession sharedSession].isTesting = true; NSLog(@"isTesting = %d", [MySession sharedSession].isTesting); // prints 1 [myClassObj myMethod]; } 

但是在我的myMethodisTesting从来没有通过true检查:

 - (void)myMethod { if ([MySession sharedSession].isTesting == true) { // this condition is always failing ... do something ... } } 

我也在testing和实际方法中都打印了单例对象,并validation了这两个对象都指向相同的内存位置。

任何人都有任何线索为什么这样发生。 任何方向/指针/指导,高度赞赏!

得到这个整理出来 –

观察到应用程序模块和testing模块是分离的模块,所以我从我的testing目标中删除了单例类MySession ,并简单地在我的testing类中导入了项目,它工作得很好。