如果我有这样的话:
public class Set {
private ArrayList<String> testList;
private String testString;
public Set() {
}
public void add(String testString) {
testList.add(testString);
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(testString).append(System.getProperty("line.separator"));
return sb.toString();
}
}
如何在主方法中测试? 这是我到目前为止所尝试的......
Set test = new Set();
test.add("blah");
test.add("blahhh");
System.out.println(blah.toString());
我这样做是否正确?在高中学习我的第一门CS课程,我们应该创建一个实现toString()方法的课程。
答案 0 :(得分:0)
您在询问测试;然后不要去打印语句。 转向单元测试环境,如JUnit;并编写真正的测试:
@Test
public testToStringWithTwoEntries() {
Set underTest = new Set();
underTest.add(...
assertThat(underTest.toString(), is("blah, blahhh"));
}
例如,。注意:
is()
来电的来源)答案 1 :(得分:0)
一个非常好的库,用于在模型类上测试toString:https://github.com/jparams/to-string-verifier
示例:
@Test
public void myTest()
{
ToStringVerifier.forClass(Set.class).verify();
}
答案 2 :(得分:-1)
你创建了类Set的对象测试Set just now now now:
System.out.println(test);
将为您提供所需的结果,因为它将使用toString方法
并且未设置testString,因此toString将返回null
答案 3 :(得分:-1)
您可以通过这种方式测试toString,但为此您应该使用单元测试(请参阅junit)。
为了测试你的课程,你应该尝试使用不同类型的输入,看看,如果有人意外发生了什么,会发生什么。
您的代码中存在错误:
Set test = new Set();
test.add("blah");
test.add("blahhh");
System.out.println(blah.toString());
没有blah变量:
System.out.println(test.toString());
或只是:
System.out.println(test);
出于学习目的,你应该在你的toString中做一些更有用的事情。您可以尝试使用余额,所有者数据(名称,地址,...)创建一个类银行帐户,并在toString中创建一个有趣的输出。