Ваш метод Post
возвращает int
. В вашем тесте вы ожидаете получить обнуляемое значение int (int?
).
Моя проблема в том, что вы на самом деле не проверяете результат вашего метода при использовании этого утверждения: Assert.IsTrue(response != null);
. Первая проблема заключается в том, что такого рода тесты никогда не пройдут.
Я полагаю, что ваш метод dashboardrepos.SaveSearchHistoryByUser
должен возвращать первичный ключ сущности, которую вы только что сохранили в своей БД. Исходя из этого предположения, я предлагаю вам провести рефакторинг теста, как я опишу ниже, чтобы улучшить и решить проблему с покрытием.
[TestMethod()]
public void GlobalSeach_PutTest()
{
SearchHistory history = new SearchHistory {
// redacted for ease of reading on SO
}
// _dashboardreposMock is an example of Mock<IDashboardRepository>
_dashboardreposMock.Setup(_ => _.SaveSearchHistoryByUser(It.IsAny<SearchHistory>)).Returns(1);
var controller = new GlobalSearchController(_config);
int response = controller.Post(history);
Assert.IsTrue(response == 1);
}