The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

Test

Jestで環境変数を設定する

JestでテストするときにwebpackのDefinePluginなどで環境変数をセットしている場合、テスト時にもセットしたいときがあります。 package.jsonのjestのところにglobalsを追加することで設定できます。 Configuring Jest · Jest EXAMPLE package.json "jest": …

Xcode8でテストが実行できない Could not determine bundle identifier for TEST_HOST

Xcode8でxcodebuildでtestを走らせると以下のようなエラーがでてテストが実行できなくなりました xcodebuild: error: Failed to build workspace XXX with scheme XXX. Reason: Could not determine bundle identifier for XXXTests's TEST_HOST: どうもTEST…

Swiftでコマンドラインでカバレッジを取る方法

Objective-Cのときはgcov使ってUnitTestのカバレッジを取っていましたが、 Xcode7から(?)llvm-covが使えるようになったのでこれを使ってみます。 ドキュメントを見ると使い方としては結構単純で、 レポートを出力するには、以下のようにPROFILEとBINを与えて…

SwiftでUnitTest時に環境変数で分岐させる

テスト対象を@testable import XXXXを使ってimportした場合に、テスト対象のコードをテスト時だけ分岐させて特定の処理を行わないようにしたりしたい場合の対処方法です。 方法としては、環境変数がセットされているかどうかでテストかどうかを判定します。 …

UnitTestでNSUserDefaultsに保存したデータを消す方法

UnitTestだとremoveObjectForKeyや NSUserDefaults.standardUserDefaults().removeObjectForKey("key") resetStandartUserDefaultsを呼んでもデータが消えません NSUserDefaults.resetStandardUserDefaults() 解決方法 setObjectでnilを突っ込む NSUserDefau…

SwiftでUnitTestするときに"Use of undeclared type"になる場合の対処法

テストを実行するとこういうエラーがでることがあると思います。 Use of undeclared type 'Todo' does not have a member named 'todo' import XCTest import TodoApp class TodoTests: XCTestCase { var todo: Todo! override func setUp() { super.setUp()…