带有互联网连接案例的 XCTestCase

XCTestCase with internet connection case

我正在编写一个在线和离线功能分离的应用程序。在这些功能中,我使用 Reachability 来检查互联网连接,并且在每种情况下 (online/offline),它会执行不同的工作。

现在,我被要求为这些业务逻辑编写测试用例。我到处搜索,但似乎没有人关心 iOS 中的测试用例。

我想编写涵盖两个 online/offline 案例的测试用例。 iOS 有可能吗?如果可以,如何模拟网络连接状态?

更新问题:

我还想介绍从在线到离线以及从在线到离线的切换案例。应该有办法模拟这个网络连接状态吧?

您应该使用 OCMock

模拟 return 值
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];