开发iOS应用程序时,您可以使用两种可能的测试类型,一种用于单元测试,另一种用于验收测试。这些在Xcode中分别被称为“测试目标”和“UI测试目标”。
在测试目标中,您可以通过使用@testable import MyAppName
导入其Swift模块,然后使用Apple提供的框架XCTest
编写单元测试来测试所有应用程序代码。
在Apple提供的工具上,FOSS社区开发了其他优秀的测试库。特别是Quick是一个提供类似于Mocha的语法的测试框架。
当谈到UI测试目标时,有一件重要的事情要说:你只能通过测试你的应用程序行为。没有办法访问应用程序代码,所有事情都是通过代理模拟用户与UI的交互来完成的。就我个人而言,这是一个很好的理由。应该通过只允许UI交互的工具编写的测试类型应该是验收/功能测试,应该只验证应用程序的行为。无法访问代码是避免滥用此工具的好方法。
我不知道,我怎么能彻底测试使用存根和嘲笑我的应用程序的方法,模仿连接到Web服务异步和让自己确保测试可以以明确的方式来写,我年迈的身体创造安心。
不断深入:
使用存根和嘲笑
因为斯威夫特的性质做真正的嘲讽是挺难的。最好使用假货和双打。在网上也有大量文献说明为什么使用模拟和存根很少是一个好主意,例如this,this,this和this。
模仿连接到Web服务异步
之后说了这么多,这是事实,有时磕碰是你突出的情况下非常有用,例如。一个好的图书馆是OHHTTPStubs。
让自己确保测试可以以明确的方式
我相信,今天支持毫不费力字迹清晰和有效的测试有足够的工具来编写。剩下的由你,你的团队以及你设计你的应用的方式决定。因为它毕竟是用于任何其他编程语言的:D
如果我可以在这里插入一个无耻的插件,在今年年初我写了a post covering the state of testing in the iOS plaform,自那时以来发生了很多新事物,但它可能是如果你想深入挖掘,这是一个很好的起点。