概要
暦法付きロケールIDを引数 AppleLocale
に設定すると暦法指定のテストができます。Test Plansと組み合わせると便利です。
xctestplanファイルの用意
Test Plans未導入の場合は、Product -> Scheme -> Edit Scheme
画面TestタブのConvert to use Test Plans
からxctestplanファイルを生成してください。ファイルの Configurations
タブを開くと、様々な設定項目があることを確認できます。
これらの中でも地域設定には 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 Region
は System Region
とします。
以上を反映させた画面が下記です。
値の詳細
この値は、下記処理の出力を元に作成しました。
print(Locale.current)
# 和暦設定時
# ja_JP@calendar=japanese (current)
# 西暦設定時
# ja_JP (current)
実行
Cmd + U
等から通常実行します。すると、指定した暦法の元ユニットテストが行われます。
参考
Test plansの詳細な使い方は、下記を参考にさせていただきました。