gpt4 book ai didi

android - 仅使用 AndroidJunit4 时日历测试通过

转载 作者:行者123 更新时间:2023-12-02 13:26:45 26 4
gpt4 key购买 nike

我有一个奇怪的案例。我正在运行本地测试并在该测试中使用 Calendar 类。
使用 @RunWith(AndroidJUnit4::class) 注释测试类时测试通过,否则测试失败。
测试代码不包含任何 Android 环境库
这是我的课

class MyDateUtils(private val calendar: Calendar) {

fun getDates(): Long{
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY)
return calendar.timeInMillis
}
}
这是测试用例,这个通过
@RunWith(AndroidJUnit4::class)
class MyDateUtilsTest {

private lateinit var calendar: Calendar
private lateinit var dateUtils: MyDateUtils

@Before
fun init() {
calendar = Calendar.getInstance()
calendar.timeInMillis = 1592422768000
dateUtils = MyDateUtils(calendar)
}

@Test
fun `when get dates is called with wednesday day should return sunday of the same week`() {
val expected = 1592163568000

val actual = dateUtils.getDates()

assertEquals(expected, actual)

}
}
现在当我删除 @RunWith(AndroidJUnit4::class)测试失败并显示此错误消息 java.lang.AssertionError: Expected :1592163568000 Actual :1592768368000P.S 预期的行为是 getDates()方法返回同一周内的星期日。但是 没有 @RunWith(AndroidJUnit4::class)它会在下个星期天(下周)返回。

最佳答案

这可能与使用 AndroidJUnit4 运行时可能更改的默认语言环境有关。
对于不同的语言环境,一周的第一天是不同的,这可能会使测试失败或通过,具体取决于运行者。

关于android - 仅使用 AndroidJunit4 时日历测试通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63569535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com