開發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,自那時以來發生了很多新事物,但它可能是如果你想深入挖掘,這是一個很好的起點。