我正在编写一个在线和离线时分离功能的应用。在这些功能中,我使用Reachability
检查互联网连接,并使用每个案例(在线/离线),它会做不同的工作。
现在,我被要求为这些业务逻辑编写测试用例。我到处搜索,但似乎没有人关心iOS中的测试用例。
我想编写覆盖在线/离线案例的测试用例。在iOS中有可能吗?如果是这样,我如何模拟互联网连接状态?
更新问题:
我还想介绍从在线到离线切换的情况,反之亦然。应该有一种方法来模拟这种网络连接状态,对吗?
答案 0 :(得分:3)
您应该使用OCMock模拟返回值
id reachabilityMock = OCMClassMock([Reachability class]);
[OCMStub([reachabilityMock currentReachabilityStatus]) andReturnValue:@(ReachableViaWiFi)];
[OCMStub([reachabilityMock reachabilityForInternetConnection]) andReturn:reachabilityMock];
Reachability *reachability = [Reachability reachabilityForInternetConnection];
XCTAssertEqual(reachability.currentReachabilityStatus, ReachableViaWiFi);
然后手动发送可达性更改通知。
[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: noteObject];