2
4

More than 3 years have passed since last update.

[Swift] Unit/UI Test  メモ #2

Last updated at Posted at 2020-05-02

XCTest

前回のメモ#1はここへ

基本

メソッド 意味
setUp 各テストが始まる前に実行
tearDown 各テストが終わった後に実行
setUpWithError 各テストが始まる前に実行、 throws付き
tearDownWithError 各テストが終わった後に実行、throws付き
testExample 各テスト実施
testPerformanceExample 性能テスト

テンプレート(Xcode 11.4 )

throws付き両方のサンプルテストメソッドをマークします。
ただし、setup()、tearDown()、非スローテストメソッドを使用できます。
(非推奨ではありません。)

override func setUpWithError() throws {}
override func tearDownWithError() throws {}
func testExample() throws {}
func testPerformanceExample() throws {}

※参照:XCTest Error Handling Improvements

Realm

Realmアプリを使用してテストする最も簡単な方法
・デフォルトのレルムをテストごとに新しいファイルに設定します。
理由:アプリケーションデータを上書きしたり、テスト間で状態を漏らしたりしないようにするため、

realmTests.swift
class TestCaseBase: XCTestCase {
    override func setUp() {
        super.setUp()
        Realm.Configuration.defaultConfiguration.inMemoryIdentifier = self.name
    }
}

参照: Realm

UI Test

sampleUITests.swift
 func testExample() {
    let app = XCUIApplication()
    app.buttons["Test"].tap()
    app.staticTexts["touched Test Button: "].tap()
}

コードカバレッジ(Code Coverage )

実際にテストによって実行されているアプリコードを通知するので、アプリコードのどの部分が(まだ)テストされていないかがわかります。

coverage-xcode.png

※参照:raywenderlich test tutorial

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4