单元测试NullReferenceException与字符串属性问题

时间:2011-04-04 19:44:24

标签: asp.net-mvc unit-testing

我正在使用EF 4.0编写ASP.MVC 3应用程序的单元测试,我在测试期间遇到System.NullReferenceException问题。我正在服务层测试这个方法:

public IQueryable<Pricing> GetPricing(int categoryID)
    {
        var query = from t in _repository.GetAllPricing()
                    where t.FK_Category == categoryID
                    where t.Status.Equals("1")
                    select t;
        return query;
    }

工作正常。但是当Status等于null并且我调用

svc.GetPricing(1).Count();

在测试方法中,然后抛出异常。我正在使用假存储库和其他(空)字符串。

我尝试使用pricing.Status = Convert.ToString(null);代替pricing.Status = null;,但这也无效。

1 个答案:

答案 0 :(得分:1)

问题是你无法在空引用上调用.Equals - 它会像你经历的那样抛出NullReferenceException

相反,您可以调用相等运算符:

public IQueryable<Pricing> GetPricing(int categoryID)
{
    var query = from t in _repository.GetAllPricing()
                where t.FK_Category == categoryID
                where t.Status == "1"
                select t;
    return query;
}