如何進行 iOS 單元測試(Unit Test) ? 使用 XCode 創建單元測試案例
XCode 內建了 Unit Test、UI Test、Code Coverage、Performance 等框架
本篇主要聚焦在如何進行 iOS 單元測試(Unit Test) ,使用 XCode 創建單元測試案例
測試用的程式代碼與教程文件,都在下方連結中。
程式
文件
目錄
- 創建單元測試模板
- 建立單元測試案例
- 單元測試結果
創建單元測試模板
新增單元測試模板
選擇模板
新產生的檔案夾
範例代碼
建立單元測試案例
測試案例
- AppInfo
- AppInfoService
AppInfo
class AppInfo{
var name : String
var version : String
var date : String
var author : String
var remark : String
init (name : String , version : String , date : String , author : String , remark : String){
self.name = name
self.version = version
self.date = date
self.author = author
self.remark = remark
}
convenience init(){
self.init(name: "" , version: "" , date: "" , author: "" , remark: "")
}
}
AppInfoService
class AppInfoService{
var appInfo = AppInfo(name: "iOSProjSE" , version: "v1.0.1" , date: "2020-10-09" , author: "Enoxs" , remark: "iOS App : Tutor")
func getAppInfo() -> AppInfo{
return appInfo
}
}
單元測試範例
- AppInfoServiceTest
AppInfoServiceTest
import Foundation
import XCTest
@testable import iOSProjSE
class AppInfoServiceTest : XCTestCase{
var service = AppInfoService()
func testGetAppInfo01(){
let appInfo = service.getAppInfo()
XCTAssertEqual("iOSProjSE", appInfo.name)
}
func testGetAppInfo02(){
let appInfo = service.getAppInfo()
XCTAssertEqual("v1.0.2", appInfo.version)
}
}
- import XCTest : 單元測試庫
- class AppInfoServiceTest : XCTestCase{ : 繼承 XCTestCase
- @testable import iOSProjSE : 導入要測試的模組
- func testGetAppInfo() : 單元測試函式,必須以 test 前綴開頭,否則不會被觸發
- XCTAssertEqual("iOSProjSE", appInfo.name) : 測試案例斷言
單元測試結果
執行測試
- 快捷鍵 : command + U
測試結果
- 側邊欄 : [Show the test Navigator] -> 全部測試狀態
- 綠色 : 測試通過
- 紅色 : 測試失敗
留言
張貼留言