LoginSignup
7
2

More than 3 years have passed since last update.

【Xcode】暦法を指定したユニットテスト

Posted at

概要

暦法付きロケールIDを引数 AppleLocale に設定すると暦法指定のテストができます。Test Plansと組み合わせると便利です。

xctestplanファイルの用意

Test Plans未導入の場合は、Product -> Scheme -> Edit Scheme 画面TestタブのConvert to use Test Plans からxctestplanファイルを生成してください。ファイルの Configurations タブを開くと、様々な設定項目があることを確認できます。
スクリーンショット 2020-05-06 午後6.43.52.png
これらの中でも地域設定には Localization -> Application Region を使用すれば良さそうですが、Xcode11現在、暦法すなわちCalendarを指定する仕組みはありません。
そこで、 Arguments Passed On Launch から地域を直接指定します。

指定する引数の用意

地域の設定には、引数 AppleLocale を利用します。( 参考: Testing Your Internationalized App )
引数には、カレンダー指定込みロケールIDを渡します。下記は和暦指定の例です。カレンダーIDは、Calendar.Identifier の値を参考にすると良さそうです。

-AppleLocale ja_JP@calendar=japanese 

また、この指定を有効にするため、 Localization -> Application RegionSystem Region とします。
以上を反映させた画面が下記です。
スクリーンショット 2020-05-06 午後7.22.31.png

値の詳細

この値は、下記処理の出力を元に作成しました。

print(Locale.current)

# 和暦設定時
# ja_JP@calendar=japanese (current)

# 西暦設定時
# ja_JP (current)

実行

Cmd + U等から通常実行します。すると、指定した暦法の元ユニットテストが行われます。

参考

Test plansの詳細な使い方は、下記を参考にさせていただきました。

7
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2