Java 未初始化字符上的Junit断言
我试图在Junit4 eclipse中对未初始化的字符进行断言,并得到意外的结果:Java 未初始化字符上的Junit断言,java,junit,Java,Junit,我试图在Junit4 eclipse中对未初始化的字符进行断言,并得到意外的结果: x字段声明为private char x,而在某些情况下,我使用setter public void setX(char x) { this.x = x; } 在Junit中,我尝试在未初始化的情况下断言x并断言: assertNull(transactionContext.getX()) 错误是: java.lang.AssertionError:应为null,但was:默认情况下,基本字符初始化为“
x
字段声明为private char x
,而在某些情况下,我使用setter
public void setX(char x) {
this.x = x;
}
在Junit中,我尝试在未初始化的情况下断言x并断言:
assertNull(transactionContext.getX())代码>
错误是:
java.lang.AssertionError:应为null,但was:默认情况下,基本字符初始化为“\u0000”,而不是null,因此您可能需要检查以下内容:
assertEquals(transactionContext.getX(), '\u0000');
默认情况下,在Java中,所有对象(包括像int[]
这样的数组)默认初始化为null
public class abc {
private char a;
public char getA() {
return a;
}
public void setA(char a) {
this.a = a;
}
}
默认情况下,包装Character
类将被初始化为null
。默认情况下,基本字符被初始化为'\u0000'而不是null,因此您可能需要检查以下内容:
assertEquals(transactionContext.getX(), '\u0000');
public class abc {
private char a;
public char getA() {
return a;
}
public void setA(char a) {
this.a = a;
}
}
默认情况下,在Java中,所有对象(包括像int[]
这样的数组)默认初始化为null
public class abc {
private char a;
public char getA() {
return a;
}
public void setA(char a) {
this.a = a;
}
}
默认情况下,包装器Character
类将初始化为null
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);
}
}
PFB上述等级的测试代码:
public class tester {
@Test
public void test() throws Exception{
abc a = new abc();
Assert.assertEquals((int)a.getA(), 0);
}
}
您尝试过用null初始化它吗?您可以用null初始化字符,只有字符可以设置为null。。。字符的“null”是0
您是否尝试过用null初始化它?您可以用null初始化字符,只有字符可以设置为null。。。char的“null”是0
我发现这样断言比'\u0000'好我发现这样断言比'\u0000'好