简单布尔'isSet'

时间:2016-04-02 03:28:01

标签: java boolean assertion

所以我有两套代码,一套用于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的默认值。

我的代码错了吗?我觉得它的东西很小但是我看不到它!

提前致谢, 任何意见都非常感谢!

1 个答案:

答案 0 :(得分:0)

如果已设置“名称和ID”,则需要返回true。如果已设置名称或id,则if语句将返回true。试试这个:

public boolean isSet() {
    if (!name.equals("NOT SET") && id != -1)) {
        return true;
    } else {
        return false;
    }
}
相关问题