【发布时间】:2017-04-14 01:23:32
【问题描述】:
我不知道如何为我拥有的一些代码编写单元测试。我了解代码中发生了什么,但我不确定如何为它编写单元测试。
我已经尝试过了,但我现在很难过。该代码只是打印出一个名字数组并去掉特殊字符。我想测试代码的第一行,测试特殊字符是否被剥离。
firstNameParts = new ArrayList<String>(Arrays.asList(first.split("( |-)")));
System.out.println("Length of First Name Parts: " + firstNameParts.size());
for (int i = 0; i < firstNameParts.size(); i++) {
System.out.println("First Name Part " + i + ":" + firstNameParts.get(i));
// strip out special chars
firstNameParts.set(i,firstNameParts.get(i).replaceAll("[^A-Za-z]+", ""));
System.out.println("Stripped First Name Part " + i + ":" + firstNameParts.get(i));
}
【问题讨论】:
-
将要测试的第一部分提取到返回 List
的方法中,然后测试该方法。 -
“测试代码的第一行并测试是否去除了特殊字符”:这不是第一行所做的。它只是将字符串拆分为由空格或连字符分隔的部分。
-
@Henry 字符串在代码的下半部分被拆分。第一行按照你说的做。我解释错了。我只是想知道如何将它作为单元测试进行测试。对于这两个步骤。我无法绕过它。
-
我认为你的困惑源于想要测试
System.out.println,但你不能(或不应该尝试)测试它。您需要执行 Bohemian 建议的操作并更改您的代码,以便测试复杂的部分。当人们想要对网站上的 HTML 进行“单元测试”时,他们会面临类似的问题。
标签: java unit-testing