Я новичок в модульном тестировании в ASP.NET, поэтому, пожалуйста, простите мое невежество по этому поводу. Я пытаюсь проверить свой контроллер.Модульное тестирование Web API-контроллер: результат получения ошибки
Это функция в мой контроллер, который я тестирование:
public IHttpActionResult GetCustId(string name)
{
var c_id = db.Customer.Where(s => (s.c_Name == name));
if (c_id == null)
{
return null;
}
return Ok(c_id);
}
И это мой блок кода тест:
public void GetName_ShouldReturnCorrectId()
{
var context = new TestSContext();
context.Customers.Add(new Customer { c_ID = 1, c_Name = "jonny"});
var controller = new CustomerController(context);
var result = controller.GetCustId("Johnny") as OkNegotiatedContentResult<Customer>; //ISSUE: Result is always NULL
Assert.IsNotNull(result);
Assert.AreEqual(1, result.Content.c_ID);
}
вопрос здесь:
var result = controller.GetServiceId("Johnny") as OkNegotiatedContentResult<Customer>
, потому что он всегда возвращает NULL.
НО ... Если я использую только это:
var result = controller.GetCustId("Johnny");
Тогда результат не является нулевым. И первое утверждение проходит.
Но я не могу использовать его, потому что я не уверен, как проверить второй оператор assert без использования result.Content
. Я действительно не уверен, какие тесты лучше всего тестировать в моем случае.
Цените любую помощь.
Я не понимаю раздел о 'GetServiceId'; вы написали, что 'GetCustId' - это метод, который вы пытаетесь проверить ... о первом утверждении, вы можете удалить его, второе утверждение сделает сбой, если результат будет нулевым. В чем проблема с результатом. Content'? –