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

相關問題