Модульный тест NullReferenceException с проблемой свойства строки - PullRequest
0 голосов
/ 04 апреля 2011

Я пишу модульный тест для приложения ASP.MVC 3 с EF 4.0, и у меня возникла проблема с 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;
    }

Работает нормально. Но когда статус равен нулю, и я звоню

svc.GetPricing(1).Count();

в методе теста, тогда он выдает исключение. Я использую поддельный репозиторий, а другая (пустая) строка работает хорошо.

Я пытался использовать pricing.Status = Convert.ToString(null); вместо pricing.Status = null;, но это тоже не работает.

1 Ответ

1 голос
/ 04 апреля 2011

Проблема в том, что вы не можете вызвать .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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...