Java JUnit布尔测试似乎不正确

Java JUnit布尔测试似乎不正确,java,unit-testing,junit,Java,Unit Testing,Junit,只是在一个简单的方法上编写一个简单的JUnit测试,并认为有一些问题,我可能忽略了一些显而易见的东西。我在这里有一个类,在JUnit测试中,我只是在底部测试这个方法 public class BudgetRecordItem { private boolean rowChangeFlag; public boolean isRowChangeFlag() { return rowChangeFlag; } public void setRow

只是在一个简单的方法上编写一个简单的JUnit测试,并认为有一些问题,我可能忽略了一些显而易见的东西。我在这里有一个类,在JUnit测试中,我只是在底部测试这个方法

public class BudgetRecordItem {
    private boolean rowChangeFlag;  

    public boolean isRowChangeFlag() {
        return rowChangeFlag;
    }
    public void setRowChangeFlag(boolean rowChangeFlag) {
        this.rowChangeFlag = rowChangeFlag;
    }

    public void rowChangeFlag(boolean rowChange){
        if(rowChange){
            this.setRowChangeFlag(true);
        }
    }
}
这是JUnit测试类

public class BudgetRecordItemTest {

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void testRowChangeFlag(){
        BudgetRecordItem bri = new BudgetRecordItem();
        bri.rowChangeFlag(false);
        assertEquals(null,bri.isRowChangeFlag());
    }

}
我认为(根据我的理解),由于我从未将布尔值
rowChangeFlag
初始化为false,因此如果我在JUnit测试中根据主类中的方法调用值为false的方法,它应该只在rowChangeFlag为true时设置它。因此,由于我从未将其初始化为false,因此它不应具有fasle的值

但是如果我在测试调用中更改null的值,测试就会通过,这意味着它实际上返回了一个假值


有什么想法吗?或者我只是大脑放屁?

你把
boolean
原语和
boolean
对象搞混了<代码>基本体如
布尔
不能为空,
布尔
自动初始化为

基本体
布尔
默认为假不为空。啊,明白了。谢谢。是的@gtgaxiola也指出了这一点。谢谢你,我早该知道的!