将字符串转换为日期类型的方法的单元测试

时间:2018-11-23 21:24:14

标签: unit-testing

我对编码和单元测试非常陌生。 我正在为将字符串转换为日期的方法编写单元测试。

对于肯定的测试我该怎么断言

就像下面的

String s1 = "11/11/2018"; Date returnedValue = Class.ConvertToDate(s1); assert(????);

1 个答案:

答案 0 :(得分:0)

我不确定您的代码段中的Date类提供了哪些方法,因此我将假定它具有以下方法:getDayNrInMonth将从{{ 1}},1(以getMonthNrInYear开头的整数形式返回月份)和1(以整数值的形式返回年份)(让我们忽略存在不同的日历系统,并且全部用于公历)。

您首先要回答的重要问题是测试的目标是什么。您可以测试几个可能的目标-这意味着您可能最终应该编写多个测试。假设您要测试年份部分是否正确转换。然后,该断言可能如下所示:

getYearNr

然而,您的测试框架很可能会在这里为您提供更好的东西,可能是函数assert(returnedValue.getYearNr() == 2018); ,您可以按以下方式使用它:

assertEquals

相反,如果您要检查月份是否正确转换,您将立即意识到所选的测试示例不理想:

assertEquals(returnedValue.getYearNr(), 2018);

因为在您的示例中,日期和月份都为11,所以该测试不太可靠。因此,为了测试日期和月份的正确转换,应选择输入字符串以使二者具有可区分的值。

在继续学习编程和测试的过程中,您会发现还有更多方面可以考虑。评论中的链接可以为您提供帮助。但是,希望以上几点可以帮助您进行下一步。