【发布时间】:2016-04-02 03:28:00
【问题描述】:
所以我有两组代码,一组用于 Employer,一组用于 Employee,我得到了一张 UML 图,告诉我具体要做什么,但我在一个特定部分遇到问题...
Employee 有两个主要变量,一个 ID 和 Name..
在 UML 上,它说
如果 name 和 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 不是 -1,您现在返回
true。将&&切换为||。