2015-09-10 9 views
5

私は、このようなメソッドを実装する必要がありました:必要なinit(coder :)をテストするには?私のカスタムクラス<code>WLNetworkClient</code>で

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

私はそれを使用する必要はありませんが、私は100%のコードカバレッジを作るためにこれをテストしたいと思います。あなたはこれを達成する方法を知っていますか?

ノー成功を収めて、次の方法を試してみました:

let nc = WLNetworkClient(coder: NSCoder()) 
XCTAssertNotNil(nc) 

答えて

1

Hereはあなたを助けなければならない答えです:

let cd = NSKeyedUnarchiver(forReadingWithData: NSMutableData()) 
let c = CustomTextField(coder:cd) 
+0

それでも不安です。*** - [NSKeyedUnarchiver initForReadingWithData:]:データが空です。あなたはNSKeyedArchiverに-finishEncodingを送信することを忘れましたか? –

+0

これは私のためにUIButtonで働いた – Jeremiah

3

量産コード:

required init?(coder: NSCoder) { 
    return nil 
} 

テスト:

func testInitWithCoder() { 
    let archiverData = NSMutableData() 
    let archiver = NSKeyedArchiver(forWritingWithMutableData: archiverData) 
    let someView = SomeView(coder: archiver) 
    XCTAssertNil(someView) 
} 
+0

良い音;)明日試してみてください... –

+0

@BartłomiejSemańczyk –

+0

これは私にとっては少し違う状況では機能しません。 2番目の行としてsuper.init(coder:aDecoder)を呼び出して、その行での実行を停止します。クラッシュしてもテストは終了しません。 – Jeremiah

関連する問題