Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

JUnit5 @CsvSourceでnull,空文字,空白を指定する方法

JUnit の @CsvSource で、null, 空文字, 半角スペース(空白)を設定する方法を書いていきます。

バージョン

動作確認で使用した製品のバージョンは以下の通りです。

1. 指定方法

@CsvSource で null, 空文字, 半角スペースを指定する方法は以下の通りです。

package org.example.csv;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

class CsvNullEmptySpaceTest {
  @ParameterizedTest
  @CsvSource({
    ", ",  // null
    "'', ''",  // 空文字
    "' ', ' '",  // 半角スペース
    " Hello , World ",  // 'Hello', 'World'
    "' Hello ', ' World '"  // ' Hello ', ' World '
  })
  void test(String target, String expected) {
    System.out.println(
      "[target=" + target + "] [expected=" + expected + "]"
    );
  }
}

1.1. null

文字を何も指定しないか、半角スペースだけの場合は null になります。

1.2. 空文字

シングルクォーテーションを2つ続けて空文字を指定します。

1.3. 半角スペース

シングルクォーテーションでスペースを囲みます。文字列の前後にスペースを付けたい場合も、シングルクォーテーションで値を囲みます。

2. 動作確認

上のテストを実行すると、以下の内容が出力されます。

[target=null] [expected=null]
[target=] [expected=]
[target= ] [expected= ]
[target=Hello] [expected=World]
[target= Hello ] [expected= World ]

半角スペースは、シングルクォーテーションで囲まないとトリムされています。