[UnitTest][UITest] Swift で UnitTest, UITest 作成の効率を向上するポイント

     
⌛️ 2 min.

普段から使用している テストクラスのテンプレートを説明します。

Xcode の snippet

Xcode 上で、コマンド(⌘) + Shift + L をタイプすると Code Snippets のウィンドウが開きます。

CodeSnippets ウィンドウ
CodeSnippets ウィンドウ

Code Snippet の使い方

Code Snippets ウィンドウを開き、左側のリストから選択すると、登録されていた定型文が、エディタのカーソルのある場所に入力されます。

この機能は、定型文等を入力するのに非常に便利です。

例えば、以下のような定型文も用意されています。

Lazy Closure Stored Property Declaration


lazy var #property name#>: #type name#> = {
    #statements#>
    return #value#>
}()

Code Snippet の登録 (Xcode 上)

上記の定型文は事前に用意されているものですが、自前の Snippet も登録することができます。

  1. エディタ上で、登録したい文字を選択
  2. 右クリックで表示されるコンテキストメニューから [Create Code Snippet] を選択
  3. 表示される Code Snippets ウィンドウで登録されたことを確認

なお、Code Snippets ウィンドウの右下の [Edit] ボタンを押すと、変更することができます。

Code Snippet の登録(Finder から)

ユーザーの登録した Snippet は、以下のフォルダに保存されています。

ファイルパス

~/Library/Developer/Xcode/UserData/CodeSnippets

上記のフォルダにファイルを入れることで登録することもできます。

以下に紹介しているテンプレートは、この記事に添付されているファイルを上記フォルダにコピーすることで、使えるようになります。

テスト用テンプレート

Xcode 上でファイルを作成する時に、以下のようなウィンドウが表示され、作成するファイルに応じてテンプレートを使うことができます。

Xcode での New File Dialog
Xcode での New File Dialog

UnitTest を作成する時に、”UI Test Case Class” や “UnitTest Case Class” を選ぶと良さそうなのですが、作成されるファイルは、Objective-C です・・・・

UnitTest や UITest の時に、テンプレートがあると非常に効率が良いので、自分で作ってみました。

UnitTest 用のテンプレート

UnitTest 用のテンプレートです。

UnitTest template
UnitTest template

クラス名等を placeholder にしてあるので、TAB キーで移動して埋めていくことができるようにしています。

UITest 用のテンプレート

UITest 用のテンプレートです。

UITest template
UITest template

UnitTest 用テンプレートと同様に、クラス名等を placeholder にしています。

メソッドテンプレート

メソッド追加用のテンプレートを用意しておくと、さらに便利です。

まとめ:Swift で UnitTest,UITest 作成効率向上のポイント

Swift で UnitTest, UITest 作成の効率を向上するポイント
  • Xcode の Code Snippets を利用すると、テストコードも効率的に書ける
  • Code Snippets に クラステンプレートを登録しておくと効率向上に直結する
  • メソッドのテンプレートを登録しておくと、さらに効率が向上する

上で紹介しているテンプレートはこちら:20201212CodeSnippetsForTest.zip

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です