我正在使用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;
,但这也无效。
答案 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;
}