在Kotlin中使用LocalDate测试包级别的功能

沙申克:

我有包含的DateUtil.kt文件。

fun getFirstDayOfTheWeek(): String {

    val firstDay: LocalDate = LocalDate.now(ZoneId.of(DateConstants.IST_ZONE_ID))
            .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
    return firstDay.toString()
}

我该如何测试?没有类,只有函数。使用Spring Boot,@ExtendWith(SpringExtension.class)可以在课程级别使用。

我还是应该为其创建DateUtilTest类,还是有一种无需创建类即可进行测试的方法?

@ExtendWith(SpringExtension::class)
class DateUtilsTest {

    @Test
    fun getFirstDayOfTheWeekTest() {

    }
}

另外,有人可以帮助您测试此功能吗?我应该模拟LocalDate库吗?

小街:

您无需SpringExtension测试简单的非Spring代码。您只需要在课程中进行简单测试即可。

设计此类功能时要考虑的几件事。LocalDate.now()使功能不纯净相反,此Date应该作为函数的参数来使用,因此更易于测试。使用Kotlin,您可以使用默认值进行初始化,因此函数调用者的签名不会更改。

fun getFirstDayOfTheWeek(date: LocalDate = LocalDate.now()): String {

  val firstDay: LocalDate = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
  return firstDay.toString()
}

class DateUtilKt {

  @Test
  fun testFirstDayOfTheWeek() {
    val day = getFirstDayOfTheWeek(LocalDate.of(2020, 5,22))
    assertEquals("2020-05-18", day)
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章