4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テストの関数名を日本語にしよう!(Swift)

Posted at

はじめに

本記事は どすこい塾 Advent Calendar 2025 の8日目の記事です。
昨日も @uhooi他リポジトリのGitHub Actionsを実行する方法 でした。

テストの関数名を日本語にしよう、という話です。

環境

  • OS:macOS Sequoia 15.6(24G84)
  • Swift:6.2.1

Swift 6.2から関数名に日本語などを使えるようになった

以前の記事で紹介した通り、Swift 6.2からバックティックで括ることで、 関数名などに様々な文字を含められるようになりました

@Test
func `1+1が2になる`() {
    #expect(1 + 1 == 2)
}

「様々な文字」には日本語も含まれるので、この機能追加によりテストの関数名を日本語で書けるようになりました。

テストの関数名を日本語にするメリット・デメリット

テストの関数名を日本語にするメリットとデメリットを紹介します。

メリット1: 意味をわかりやすく伝えられる

日本語、かつ文章にすることで意味をわかりやすく伝えられます。

// Before
@Test(arguments: [
    (0, 100),
    (1, 99),
])
func aPlusBIs100OrMore(_ a: Int, _ b: Int) {
    #expect(a + b >= 100)
}

// After
@Test(arguments: [
    (0, 100),
    (1, 99),
])
func `aとbの合計が100以上になる`(_ a: Int, _ b: Int) {
    #expect(a + b >= 100)
}

よく「テストが仕様書の代わりになる」といいますが、読みづらかったら代わりになりづらいです。

本記事で最も伝えたいことは「 テストの関数名をわかりやすくしよう 」なので、プロジェクトによっては英語で記述してもいいと思います。
スペースが使えるので英語の文章も読みやすく書けるようになりました。

// After (English)
@Test(arguments: [
    (0, 100),
    (1, 99),
])
func `The sum of a and b is 100 or more`(_ a: Int, _ b: Int) {
    #expect(a + b >= 100)
}

ちなみにプロポーザルでも最初にテストの関数名について書かれているので、本記事で説明している内容はRaw identifiersの意図した使い方です。

デメリット1: Swift 6.2未満でビルドが通らない

Swift 6.2からの機能を使っているので、当たり前ですがSwift 6.2未満ではビルドが通りません。
何らかの理由でSwiftのバージョンを上げられない場合はまだ使えません。

デメリット2: 何か関数名っぽくない

日本語やスペースが入ると、何となく関数名っぽくないと感じる人もいるかもしれません。
気持ちはわかりますが、徐々に慣れると思います。

おわりに

テストの関数名をわかりやすくして、プロダクトコードと同じように保守性を高めましょう :relaxed:

以上 どすこい塾 Advent Calendar 2025 の8日目の記事でした。
明日は未定です。

4
1
0

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?