Junit对未初始化的char

时间:2017-04-18 10:46:11

标签: java junit

我正试图在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:<

  1. 我怎样才能在未初始化char字段时断言而不用0初始化他?根据我的理解,0是java中char的默认值。
  2. 2.在这种情况下,最好使用assertEquals吗?

2 个答案:

答案 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