XCTestCase 带互联网连接案例

Posted

技术标签:

【中文标题】XCTestCase 带互联网连接案例【英文标题】:XCTestCase with internet connection case 【发布时间】:2016-05-31 07:21:29 【问题描述】:

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

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

我想编写涵盖在线/离线案例的测试用例。在iOS中可以吗?如果有,如何模拟网络连接状态?

更新问题:

我还想介绍从在线切换到离线的案例,反之亦然。应该有办法模拟这种网络连接状态吧?

【问题讨论】:

这可能会有所帮助:What is mocking?、OCMock。 【参考方案1】:

您应该使用 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];

【讨论】:

嗨,很抱歉迟到的评论。我有一个静态单例对象,它包含一个 Reachability 的实例来检查互联网变化。该对象与可达性对象 BEFORE 测试设置一起被初始化,因此模拟不适用于其属性。我该如何解决这个问题? 您可能需要在单例初始化之前使用方法调配来模拟。 谢谢,我会在测试方法混乱后与您联系。看起来不错。

以上是关于XCTestCase 带互联网连接案例的主要内容,如果未能解决你的问题,请参考以下文章

杉岩数据异地容灾备份解决方案(中移物联网案例)

获取上一个时间点的值。 Clickhouse。物联网案例

如何使用 XCTestCase 测试异步代码

C#用Visual Studio连接ONENET物联网平台做一个简易版微信,兼带连接esp8266通讯控继电器功能

上千元的Python爬虫外包案例,学会你就赚了

上千元的Python爬虫外包案例,学会你就赚了