我对编码和单元测试非常陌生。 我正在为将字符串转换为日期的方法编写单元测试。
对于肯定的测试我该怎么断言
就像下面的
String s1 = "11/11/2018";
Date returnedValue = Class.ConvertToDate(s1);
assert(????);
答案 0 :(得分:0)
我不确定您的代码段中的Date
类提供了哪些方法,因此我将假定它具有以下方法:getDayNrInMonth
将从{{ 1}},1
(以getMonthNrInYear
开头的整数形式返回月份)和1
(以整数值的形式返回年份)(让我们忽略存在不同的日历系统,并且全部用于公历)。
您首先要回答的重要问题是测试的目标是什么。您可以测试几个可能的目标-这意味着您可能最终应该编写多个测试。假设您要测试年份部分是否正确转换。然后,该断言可能如下所示:
getYearNr
然而,您的测试框架很可能会在这里为您提供更好的东西,可能是函数assert(returnedValue.getYearNr() == 2018);
,您可以按以下方式使用它:
assertEquals
相反,如果您要检查月份是否正确转换,您将立即意识到所选的测试示例不理想:
assertEquals(returnedValue.getYearNr(), 2018);
因为在您的示例中,日期和月份都为11,所以该测试不太可靠。因此,为了测试日期和月份的正确转换,应选择输入字符串以使二者具有可区分的值。
在继续学习编程和测试的过程中,您会发现还有更多方面可以考虑。评论中的链接可以为您提供帮助。但是,希望以上几点可以帮助您进行下一步。