はじめに
勉強会で、XCTest入門の発表中に出た疑問です。
この中である、
waitForExpectationsWithTimeout
の値です。
答え 設計をもとに決める。
メソットのタイムアウト値のテストなので、そのメソットが利用される
プログラムに与えられた、非機能要件の範囲で決まってきます。
たとえば・・・
非機能要件で、画面遷移を0.5秒以内とする。
としていて、
- 画面描画
- APIアクセス
- データ加工
- その他の処理
という処理があったとします。
その場合、
- 画面描画に ・・・0.1秒
- APIアクセスに・・・0.2秒
- データ加工に ・・・0.1秒
- その他の処理に・・・0.1秒 (バッファー)
というような割り当てをして、
「APIアクセス」のメソットの タイムアウト値は、0.2秒でテストを行います。
ちなみに・・・
開発環境と本番環境では、APIのスペックが違うこともあります。
その場合には、本番環境と開発環境のパフォーマンス差の係数をだして、
タイムアウトの設定値とします。
例
本番環境 0.2秒
開発環境 0.4秒
係数は、2になる。
「APIアクセス」のメソットの 要件上のタイムアウト値は、0.2秒なので、
設定値は、 0.2 x 2 で、0.4 となる。