所以我有两套代码,一套用于Employer,一套用于Employee,我已经获得了一个UML图表,告诉我究竟要做什么,但我遇到了一个特定部分的问题......
Employee有两个主要变量,ID和Name ..
在UML上,它说
如果名称和id已设置为非默认值,则返回true。否则就错了。'
这是我目前的代码:
public boolean isSet() {
if (!(name.equals("NOT SET") && id == -1)) {
return true;
} else {
return false;
}
}
提供了一个JUnit测试反对,我已经把我的头发撕成了几个小时......
public void testIsSet() {
Employee e = new Employee("Mr Tumble");
e.setId(99);
assertTrue(e.isSet());
e.setId(-1);
assertFalse(e.isSet());
e.setId(0);
assertTrue(e.isSet());
e.setName("NOT_SET");
assertFalse(e.isSet());
}
上面是它测试的内容,它在setId(-1)部分失败,这是在通过建立新员工分配ID之前设置ID的默认值。
我的代码错了吗?我觉得它的东西很小但是我看不到它!
提前致谢, 任何意见都非常感谢!
答案 0 :(得分:0)
如果已设置“名称和ID”,则需要返回true。如果已设置名称或id,则if语句将返回true。试试这个:
public boolean isSet() {
if (!name.equals("NOT SET") && id != -1)) {
return true;
} else {
return false;
}
}