带有null对象的junit测试用例

时间:2014-03-24 20:54:52

标签: testing junit nullpointerexception null

我想用3参数构造函数编写Person类,如果用户为某个人的名字和姓氏提供空字符串,我想为该对象返回null,因为我想使用junit assertNull函数来显示该对象未创建带有空字符串。

public Person(String names,String surnames,int ages)
{
    if(!names.equals(null) && !surnames.equals(null))
    {
        name = names;
        surname = surnames;
    }
    else
    {
        return;
    }

    if(ages > 0)
        age = ages;
    else
        return;
}

和测试就是那样

    @Test
public void createPerson()
{
    String ad = null;
    String soyad = null;
    int age = 10;
    Person p = new Person(ad, soyad, age);
    assertNull("Object is not created!", p );
}

怎么做我得到空指针异常?

1 个答案:

答案 0 :(得分:1)

你得到一个NullPointerException,因为你在null对象上调用equals方法。如果要检查String是否为空,则需要使用someString != null

您需要做的是:

if (names != null && surnames != null)

但这并不能解决您的问题,即无法从构造函数返回null。你唯一能做的就是抛出一个NullPointerException - 这正是你的代码所做的。必须有其他方法来解决你遇到的问题。