テストクラスをNewするとsetUpWithError()
が含まれている。
ここでメンバ変数を初期化して準備しようとするとエラーでコンパイルできない。
メインのプロジェクト(Test)でAというクラスを定義
import Foundation class A { func foo() -> Int { return 0 } }
このテストでメンバ変数aを追加
import XCTest @testable import Test final class ATests: XCTestCase { private var a: A override func setUpWithError() throws { a = A() } override func tearDownWithError() throws { } func testFoo() throws { XCTAssertEqual(123, a.foo()) } }
コンパイルしようとすると以下のメッセージがでてコンパイルできない。
Class 'ATests' has no initializers
メンバ変数定義に!を追加するとコンパイルできる。
!はForced unwrappingというみたい。
final class ATests: XCTestCase { private var a: A!