JUnit5中@ParameterizedTest 处理 @CvsSource中的空值

这篇文章介绍了在JUnit5中如何处理@CsvSource中的空值问题。当使用@ParameterizedTest进行参数化测试时,由于默认的转换器无法将null字符串转为null,会导致异常。解决方法是自定义一个Null转换器,继承SimpleArgumentConverter,将null字符串转化为null值。通过@ConvertWith注解应用这个转换器,使得测试可以接受null值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

翻译:叩丁狼教育吴嘉俊 

在JUnit4中测试方法参数是非常麻烦的事情(注:针对同一个方法,测试多组不同的参数值)。JUnit5中引入了大量的新的特性,让使用同一个测试方法,测试不同的参数变得非常容易。但是,这里面有一个问题值得讨论,就是测试空值的问题。

在这篇文章中,我们会讨论在JUnit5中,如何通过@CvsSource@ValueSource@ParameterizedTest测试传入一个空值。

@CvsSource中的空值

我们通过一个例子来引入这个问题。

假设,我们已经创建了一个类,名字叫做DateRange,这个类包含两个日期参数,用来表示一段时间。你可以通过调用DateRange的构造方法,传入至少一个日期对象,来创建一个DateRange对象。我们在构造方法中也会检查,开始时间必须在结束时间之前。

使用Junit5提供的@ParametrizedTest我们可以非常方便的进行DateRange构造器的测试:

@ParameterizedTest
@CsvSource({
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值