只是在一个简单的方法上编写一个简单的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时才应该设置它。所以,因为我从来没有将它初始化为假它不应该有一个fasle值。
但是如果我在测试调用中更改null的值,则Test传递意味着它实际上返回了一个false值
任何想法或我只是大脑放屁?
答案 0 :(得分:3)
您将boolean
原语与Boolean
个对象混淆。 primitives
之类的boolean
不能为空,boolean
会自动初始化为false
。