为什么我们需要测试我们的程序?
当人们谈论软件测试的重要性时,他们经常给出的常见示例是军用软件,飞机等。这还不够具体,不足以理解为什么我们需要测试软件。
在这里,我提供了日常编程工作的示例。您无需为军事项目工作就可以理解为什么我们需要软件测试。
以下方法将给定的字符串大写。假设您为项目编写此方法。您如何知道此方法是否可靠并且始终返回应返回的内容?我们需要测试!也就是说,给定所有不同类型的输入,我们将查看它是否返回预期结果。返回的结果可以是好是坏,但是应该可以预期。
public static String capitalize(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return str;
}
return new StringBuilder(strLen)
.append(Character.toTitleCase(str.charAt(0)))
.append(str.substring(1))
.toString();}
下面是此方法的测试代码。我删除了用于测试其他方法的代码。
测试代码测试不同类型的输入,例如null,空字符串,单字符字符串以及另一种方法的结果。这样,我们可以断言这种方法是可靠的。
@Testpublic void testCaseFunctions() {
assertEquals(null, StringUtils.capitalize(null));
assertEquals("capitalize(empty-string) failed", "", StringUtils.capitalize("") );
assertEquals("capitalize(single-char-string) failed", "X", StringUtils.capitalize"x") );
// reflection type of tests: Sentences.
assertEquals("capitalize(uncapitalize(String)) failed",
SENTENCE_CAP, StringUtils.capitalize(StringUtils.uncapitalize(SENTENCE_CAP)) );
// reflection type of tests: One word.
assertEquals("capitalize(uncapitalize(String)) failed",
FOO_CAP, StringUtils.capitalize(StringUtils.uncapitalize(FOO_CAP)) );
}
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。