Java 布尔方法的Junit测试

Java 布尔方法的Junit测试,java,testing,junit,Java,Testing,Junit,我如何使用Assertequals为布尔isEqual(学期)方法创建一个测试方法,并在课堂上使用布尔类型 这是班级学期的代码和班级学期的junit测试 学期 半东部试验 您可以尝试assertTrue,而不是尝试AssertQuals @Test public void testIsEqual() { assertTrue(isEqual(semester)); } assertTrue专门用于检查布尔值。您可以尝试assertTrue,而不是尝试AssertQuals @Test publ

我如何使用Assertequals为布尔isEqual(学期)方法创建一个测试方法,并在课堂上使用布尔类型

这是班级学期的代码和班级学期的junit测试

学期 半东部试验
您可以尝试assertTrue,而不是尝试AssertQuals

@Test
public void testIsEqual() {
assertTrue(isEqual(semester));
}

assertTrue专门用于检查布尔值。

您可以尝试assertTrue,而不是尝试AssertQuals

@Test
public void testIsEqual() {
assertTrue(isEqual(semester));
}

assertTrue专门用于检查布尔值。

首先,我将更改您的
isEqual()

尝试使用assertTrue而不是assertEquals:

 @Test
    public void testIsEqual() {
    Semester semsterTest = new Semester("2014","Fall");
    boolean res = this.semster.isEqual(semsterTest);
    assertTrue(res);
    }

当您想要测试布尔方法时,我建议您使用
assertTrue
assertFalse

首先,我要更改您的
isEqual()

尝试使用assertTrue而不是assertEquals:

 @Test
    public void testIsEqual() {
    Semester semsterTest = new Semester("2014","Fall");
    boolean res = this.semster.isEqual(semsterTest);
    assertTrue(res);
    }

当需要测试布尔方法时,我建议您使用
assertTrue
assertFalse

对于Junit中的布尔测试,最好使用assertTrue/assertFalse

@Test
public void testIsEqual() {
assertTrue(isEqual(semester)); // to check value is true
}

对于Junit中的布尔测试,最好使用assertTrue/assertFalse

@Test
public void testIsEqual() {
assertTrue(isEqual(semester)); // to check value is true
}

您可以使用assertj fluent断言来完成这项工作:

assertThat(布尔表达式).isTrue()
assertThat(布尔表达式).isFalse()
assertThat(布尔表达式).isEqualTo(另一个布尔表达式)

有关

的更多信息,您可以使用assertj fluent断言来完成这项工作:

assertThat(布尔表达式).isTrue()
assertThat(布尔表达式).isFalse()
assertThat(布尔表达式).isEqualTo(另一个布尔表达式)

更多关于

此代码需要解决三个问题

首先,已经存在一种方法,在该方法中,两个对象可以相互比较等效对象,称为
equals
。您希望重写该方法,而不是创建自己的相等方法

@Override
public boolean equals(Object otherSemester) {
    // your code here
}
其次,您的方法是非空容忍的。如果将
null
传递给该方法,您将得到一个极好的
NullPointerException
。这需要通过确保传入的对象不为null来解决

if(semester != null) {
    // logic based on semester being non-null
} else {
    return false;
}
最后,你的测试需要重写一下。您需要定义几种情况:

  • 平等学期
  • 学期不相等
  • 空的
  • 非空但不膨胀的学期(以某种方式将
    null
    传递给构造函数)
虽然我在这里列举的案例太多,但它们可以通过测试来验证


这段代码需要解决三个问题

首先,已经存在一种方法,在该方法中,两个对象可以相互比较等效对象,称为
equals
。您希望重写该方法,而不是创建自己的相等方法

@Override
public boolean equals(Object otherSemester) {
    // your code here
}
其次,您的方法是非空容忍的。如果将
null
传递给该方法,您将得到一个极好的
NullPointerException
。这需要通过确保传入的对象不为null来解决

if(semester != null) {
    // logic based on semester being non-null
} else {
    return false;
}
最后,你的测试需要重写一下。您需要定义几种情况:

  • 平等学期
  • 学期不相等
  • 空的
  • 非空但不膨胀的学期(以某种方式将
    null
    传递给构造函数)
虽然我在这里列举的案例太多,但它们可以通过测试来验证


assertEquals(true,actualValue)
assertEquals(false,actualValue)
两者都有效。还有
assertTrue(实际值)
assertFalse(实际值)
。你看过课程的JavaDoc了吗?如果这些选项不起作用,请让我们知道它们为什么不起作用,更重要的是,您实际要完成的是什么。不要忘记测试
NullPointerException
s。您需要覆盖
equals
,而不是定义自己的
isEqual
,以使用
assertEquals
@user2418306不一定
equals
有非常具体的契约,它必须遵守,而像
isEqual
这样的自定义方法可以做任何它想做的事情。有时候你肯定想要一个而不是另一个。例如,假设您有一个
Person
对象,该对象具有
id
字段以及名称和dob。
equals
只检查
id
可能是有意义的,因为如果你有一张
地图
,你想通过id来唯一地识别每个人。但是你可能还想检查两个
person
对象是否具有所有相同的值,对于哪个自定义的
isEqual
更合适。@yshavit您能说出equals契约中哪个自定义方法可能违反的规则吗?如果在您的域中,您可以保证
Person.id
是唯一的,那么与其他域竞争有什么意义?如果没有,您的地图将无法正常工作。
assertEquals(true,actualValue)
assertEquals(false,actualValue)
两者都可以工作。还有
assertTrue(实际值)
assertFalse(实际值)
。您看过这个类的JavaDoc吗?如果这些选项不起作用,请让我们知道它们为什么不起作用,更重要的是,您实际要完成的是什么。不要忘记测试
NullPointerException
s。您需要覆盖
equals
,而不是定义自己的
isEqual
,以使用
assertEquals
@user2418306不一定
equals
有非常具体的契约,它必须遵守,而像
isEqual
这样的自定义方法可以做任何它想做的事情。有时候你肯定想要一个而不是另一个。例如,假设您有一个
Person
对象,该对象具有
id
字段以及名称和dob。
equals
只检查
id
,这可能是有道理的,因为如果你有一张
地图
,你想通过id来唯一地识别每个人