我的教授给了我们这项家庭作业,并创建了一个项目,
一堆单元测试。
我们的目标是确保我们可以通过那些单元测试。
我们有三节课。
名为Person的类,带有名称和年龄,
一个扩展人的班级演讲者,
以及也扩展了Person的班级与会者。
我在努力确保没有重复的人。 generateRandomString()
由教授实施,只返回一个随机字符串。
我已经创建了课程,
是构造函数
吸气剂
和二传手。
我还覆盖了equals()
类中的方法Person
这是我们教授给我们的测试:
@Test
public void testNoDuplicatePerson() {
HashSet<Person> people = new HashSet<Person>();
String name = generateRandomString();
Person p = new Speaker(name);
people.add(p);
assertEquals(1,people.size());
p = new Attendee(name);
people.add(p);
assertEquals(1,people.size());
}
我如何通过此考试?
编辑:我决定发布三个类的代码:
Person
```java
public abstract class Person {
private String name;
private int age;
public Person(String name) {
this.name = name;
this.age = 0;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean equals(Object o) {
if (o == null || !(o instanceof Person))
return false;
Person converted = (Person) o;
if (this.getName().equals(converted.getName()) && this.getAge() == converted.getAge())
return true;
return false;
}
}
扬声器:
public class Speaker extends Person {
private int fee;
public Speaker(String name) {
super(name);
this.fee = 0;
}
public Speaker(String name, int age) {
super(name, age);
this.fee = 0;
}
public Speaker(String name, int age, int fee) {
super(name, age);
this.fee = fee;
}
public int getFee() {
return fee;
}
public void setFee(int fee) {
this.fee = fee;
}
public String toString() {
return "Speaker " + this.getName() + " as a fee value of " + this.getFee() + ".";
}
}
与会者:
public class Attendee extends Person {
private boolean paid;
public Attendee(String name) {
super(name);
this.paid=false;
}
public Attendee(String name, int age) {
super(name, age);
this.paid=false;
}
public boolean hasPaid(){
if (this.paid==true)
return true;
return false;
}
public String toString(){
return "Attendee "+this.getName()+(this.hasPaid() ? " has":" hasn't")+" paid its registration.";
}
}
答案 0 :(得分:0)
如@JB Nizet所述,当您覆盖类的UITableViewDatasource
方法时,
您必须覆盖1
方法。
注意jUnit测试中的类名称: Hash Set。
这取决于equals
方法。
解决方案:
一种。学习阅读Java API文档。
这是指向v8 JavaDocs的链接。
阅读hashCode
页。
b。实现hashCode
方法。
您显然可以访问互联网,
因此,如果您不知道如何实现HashSet
方法,
尝试在Google搜索中搜索“如何实现Java hashCode方法”。
提示:字符串已经实现了hashCode方法。