如何在JUnit Jupiter的@CsvSource中传递空格作为参数值?
在JUnit Jupiter的@CsvSource中传递空格作为参数值的解决方法
默认情况下,JUnit Jupiter的@CsvSource会将仅包含空格的字段解析为null,所以你直接写" ,lastName"时,firstName会被赋值为null。不过@CsvSource完全支持传递空格作为有效参数值,只需通过以下两种方式实现:
方式一:用双引号包裹空格
通过双引号将空格包裹起来,明确告诉解析器这是一个有效字符串值,而非空字段:
@ParameterizedTest @CsvSource({ "\" \", lastName" }) void test(String firstName, String lastName) { // 此时firstName的值为单个空格字符 }
如果需要传递多个空格,同样用双引号包裹即可,比如"\" \", lastName"。
方式二:修改nullValues配置
通过@CsvSource的nullValues属性,指定哪些字符串会被解析为null。默认情况下nullValues包含空字符串和仅含空格的字符串,我们可以将其改为只识别空字符串为null:
@ParameterizedTest @CsvSource(value = { " ,lastName" }, nullValues = "") void test(String firstName, String lastName) { // 此时firstName的值为单个空格字符 }
内容的提问来源于stack exchange,提问作者ka3ak
相关产品推荐
相关产品推荐

