

XCTestを使用しています。

例えば、以下のfunc aaaのmarker をテストしたいとします。  
すると、tableView.reloadで落ちてしまいます。  
ちなみにtableView.reloadはテストの結果に影響しません。

そこで、tableView.reloadをこのテストの時だけコメントアウト  
しておくと、問題なくテストは実行できます。

しかし、他のテストの時は、tableView.reloadは必要です。

つまり、func aaaをテストしたいときは、  
tableView.reloadをコメントアウトし、  
他のテストをしたいときは、func aaaをコメントアウトしておかなければ  
なりません。

TableViewのところで落ちるので、TableViewの初期化を行う  
ViewDidLoad（ ）を テストのsetUpで読んでみても、  
TableView.delegateのところで落ちてしまいます。

このような場合、どのような方法が有りますでしょうか？

[code]

    var marker = 0
    func aaa ( ) {
      marker = 1
    
      tableView.reload
    }
    
    ＝＝＝　test　＝＝＝＝
    func testAAA () {
      aaa
      XCTAssertEqual ( marker, 1, "")
    }
    
[/code]


CC BY-SA 3.0
2015-06-10T19:16:05.187
11237
2015-08-10T05:19:03.893
4646
question
swift テスト
swiftでXCTest実行時だけ処理されないコードを作りたい


コンパイルフラグを用いることで可能です。  
<http://qiita.com/qmihara/items/a6b88b74fe64e1e05ca4>

今回の場合に限って言えば、tabelViewの値がnilが入っているため落ちているのではないかと思われます。インスタンスを代入することで解決するかもしれません。


CC BY-SA 3.0
2015-06-11T02:35:29.900
11245
2015-06-11T02:35:29.900
9558
11237
answer