2015-09-18 55 views
1

属于网络开发的世界,我习惯了Chai,Sinon,Mocha,Jasmine等强大的测试技术和工具,以及广泛的支持和社区,以及深刻见解的书写良好的书籍。我可以想象所有可能的情况都覆盖了现有的工具。如何彻底测试用Swift创建的iOS应用程序?

现在,使用Swift学习iOS开发,我想知道如何使用存根和模拟来彻底测试我的应用程序的方法,模仿异步连接到Web服务并让自己确信测试可以以清晰的方式写入,创造和平为我衰老的身体而思考。

我发现社区在iOS开发中并不是那么宽泛,尤其是Swift,因为语言在景观上并不长。

请分享测试的最佳做法,这可以帮助我创建可靠的可预测行为的应用程序。

回答

0

开发iOS应用程序时,您可以使用两种可能的测试类型,一种用于单元测试,另一种用于验收测试。这些在Xcode中分别被称为“测试目标”和“UI测试目标”。

在测试目标中,您可以通过使用@testable import MyAppName导入其Swift模块,然后使用Apple提供的框架XCTest编写单元测试来测试所有应用程序代码。

在Apple提供的工具上,FOSS社区开发了其他优秀的测试库。特别是Quick是一个提供类似于Mocha的语法的测试框架。

当谈到UI测试目标时,有一件重要的事情要说:你只能通过测试你的应用程序行为。没有办法访问应用程序代码,所有事情都是通过代理模拟用户与UI的交互来完成的。就我个人而言,这是一个很好的理由。应该通过只允许UI交互的工具编写的测试类型应该是验收/功能测试,应该只验证应用程序的行为。无法访问代码是避免滥用此工具的好方法。

我不知道,我怎么能彻底测试使用存根和嘲笑我的应用程序的方法,模仿连接到Web服务异步和让自己确保测试可以以明确的方式来写,我年迈的身体创造安心。

不断深入:

使用存根和嘲笑

因为斯威夫特的性质做真正的嘲讽是挺难的。最好使用假货和双打。在网上也有大量文献说明为什么使用模拟和存根很少是一个好主意,例如thisthis,thisthis

模仿连接到Web服务异步

之后说了这么多,这是事实,有时磕碰是你突出的情况下非常有用,例如。一个好的图书馆是OHHTTPStubs

让自己确保测试可以以明确的方式

我相信,今天支持毫不费力字迹清晰和有效的测试有足够的工具来编写。剩下的由你,你的团队以及你设计你的应用的方式决定。因为它毕竟是用于任何其他编程语言的:D

如果我可以在这里插入一个无耻的插件,在今年年初我写了a post covering the state of testing in the iOS plaform,自那时以来发生了很多新事物,但它可能是如果你想深入挖掘,这是一个很好的起点。

相关问题