Отладка теста интеграции и веб-API параллельно в одном .net core 2.2 в одном приложении? - PullRequest
0 голосов
/ 17 июня 2019

Я создал веб-API в .net core 2.2 в visual studio 2017. В этом же проекте я также добавляю новый проект модульного тестирования для тестирования созданного веб-API.Теперь, когда я отлаживаю модульный тест, он не работает, и я не могу отладить модульный тест в режиме отладки веб-API.Пожалуйста, помогите мне найти решение вышеуказанной проблемы.

Создан Api для получения списка пользователей из базы данных с функцией поиска.Создайте тестовый проект XUnit в том же решении, чтобы протестировать созданный Api.Когда я пытаюсь запустить тестовый проект XUnit, он показывает внутреннюю ошибку сервера, и тест не отлаживается при запуске веб-интерфейса API.Ниже приведен пример кода.В одном решении есть 2 файла проекта.Один для Api, а другой для тестирования.

[HttpPost]
        public ActionResult SearchCustomer(CustomerSearch objsearch)
        {
            var Search=_ourCustomerRespository.SearchCustomer(objsearch);

            if (Search.Count() == 0)
            return StatusCode(204,new {message = "No Record Found!"});

            return Ok(Search);
        }




[Fact]
        public async Task SearchCustomers()
        {

            var response = await _TestFixture.Client.PostAsync("api/Customer/SearchCustomer", new StringContent(
            JsonConvert.SerializeObject(new CustomerSearch
            {
                custid = 2,
                custfname = "",
                custlname = "",
                custemail = "",
                custorderby = "customerid",
                custsortdirection = "asc",
                custpagesize = 10,
                custpagenumber = 0
            }), Encoding.UTF8, "application/json"));
            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }

1 Ответ

2 голосов
/ 17 июня 2019

Ну, в общем, ваша проблема в том, что вы не проводите модульное тестирование. API является внешней зависимостью, и модульные тесты по определению не имеют внешних зависимостей. Подобные зависимости необходимо проверять именно из-за проблемы, с которой вы сейчас столкнулись: ваш тест может не пройти, потому что есть проблема с зависимостью, а не с самим тестируемым кодом.

Если вы хотите проверить полное взаимодействие между кодом и действующим API, которое считается интеграционным тестом, и в такой ситуации у вас есть способ убедиться, что внешняя зависимость удовлетворена вне самого теста. Например, вы можете столкнуться со специально развернутым API «тестовой» среды.

...