XCTestCase与互联网连接案例

时间:2016-05-31 07:21:30

标签: ios objective-c xctest reachability internet-connection

我正在编写一个在线和离线时分离功能的应用。在这些功能中,我使用Reachability检查互联网连接,并使用每个案例(在线/离线),它会做不同的工作。

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

我想编写覆盖在线/离线案例的测试用例。在iOS中有可能吗?如果是这样,我如何模拟互联网连接状态?

更新问题:

我还想介绍从在线到离线切换的情况,反之亦然。应该有一种方法来模拟这种网络连接状态,对吗?

1 个答案:

答案 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];