はじめに
UI部分のテストは出来るだけユニットテストで行った方が良いです。小回りが効くので。
そのUI部分のユニットテストを行う時、アニメーションを行う処理が入っているとその分処理に時間がかかります。
テスト用にアニメーションの処理を切る処理を入れれば良いのですが、その処理がプロダクションコードのあちこちに紛れ込むのはメンテナンスの観点からよくないでしょう。
幸いな事にiOSにはアプリ全体のアニメーションを切るメソッドがUIViewのクラスメソッド(setAnimationsEnabled)として用意されています!
実際のコード例
実際のコード例を示します。テストターゲット向けのAppDelegate内で書くとプロダクションコードに全く手を入れなくてすみます。
TestingAppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UIView.setAnimationsEnabled(false)