事の発端
元々以下のように数値を通貨形式の文字列フォーマットに変換する処理のユニットテスト書いてあったんだけど、Xcode11にしてからテストが失敗するようになってしまった。
let target = 1000
XCTAssertEqual(target.yenFormattedString, "1,000円")
ちなみに、ここでやっている .yenFormattedString
は以下のようなIntのExtension。
extension Int {
var yenFormattedString: String {
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "ja_JP")
formatter.numberStyle = .currencyPlural
return numberFormatter.string(from: self as NSNumber) ?? ""
}
}
"1,000 円" is not equal "1,000円"
と言われているので、円
の前に半角スペース入るように変わったのかな?と思い、テストを修正してみたら以下のようになった。
let target = 1000
XCTAssertEqual(target.yenFormattedString, "1,000 円")
"1,000 円" is not equal "1,000 円"
??
続きを読む