我正试图在Junit4-eclipse中断言未初始化的char并获得意想不到的结果:
x
字段被声明为private char x
,而在某些情况下我使用的是setter,
public void setX(char x) {
this.x = x;
}
在Junit中的我试图断言x和断言的uninitialize案例:
assertNull(transactionContext.getX());
错误是:
java.lang.AssertionError: expected null, but was:<
2.在这种情况下,最好使用assertEquals
吗?
答案 0 :(得分:3)
public class abc {
private char a;
public char getA() {
return a;
}
public void setA(char a) {
this.a = a;
}
}
PFB上述类的测试代码:
public class tester {
@Test
public void test() throws Exception{
abc a = new abc();
Assert.assertEquals((int)a.getA(), 0);
}
}
答案 1 :(得分:1)
默认情况下,原始字符被初始化为&#39; \ u0000&#39;而不是null,所以你可能想检查一下:
assertEquals(transactionContext.getX(), '\u0000');
默认情况下,在Java中,所有对象(包括像int[]
这样的数组)默认初始化为null。
默认情况下,包装器Character
类将初始化为null
。