Java 布尔方法的Junit测试
我如何使用Assertequals为布尔isEqual(学期)方法创建一个测试方法,并在课堂上使用布尔类型 这是班级学期的代码和班级学期的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
您可以尝试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来唯一地识别每个人