Markop Test-это бесплатный сфокусированный сфокусированный инструмент для тестирования с открытым исходным кодом для .NET . Используя тесты Markop, вы можете легко записать модульные тесты , интеграционные тесты , функциональные тесты и нагрузочные тесты.
Чтобы использовать тест Markop, вы должны выполнить следующие шаги:
1- Создайте библиотечный проект класса внутри вашего решения и назовите его в соответствии с видом теста, который вы хотите выполнить, например, «Функциональный». Не забудьте добавить проект в ваше решение.
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME] 3- Установите тестовый пакет Markop в вашем тестовом проекте:
Nuget:
Install-Package MarkopTestИли используя Dotnet CLI:
dotnet add package MarkopTest4- В зависимости от вида тестирования, которые вы хотите выполнить, вы должны перейти к: модульный тест, интеграционный тест, функциональный тест или тест нагрузки.
Предполагается, что модульные тесты проверяют поведение наименьшего куска кода. Тест Markop здесь, чтобы сделать этот процесс полностью автоматизированным. Написание модульных тестов никогда не было легче!
Прежде всего, вы должны создать класс AppFactory расширить его из класса UnitTestFactory .
Затем необходимо переопределить методы Initializer и ConfigureTestServices
Метод Initializer дает вам возможность инициировать пользовательскую базу данных для тестирования всего, что вам нужно сделать, это создать свой пользовательский инициализатор и назвать ее здесь. Тест Маркопа позаботится об остальном !!
Метод ConfigureTestServices дает вам возможность зарегистрировать/удалить службы. Таким образом, вы будете иметь полный контроль над зарегистрированными службами вашего приложения, прежде чем начать тестирование !!

Тогда вам нужно создать класс и расширить его из своего собственного класса AppFactory
Далее вы должны определить метод внутри вашего класса и поместить свой атрибут испытания. Это может быть [Fact] или [Theory] или любой другой действительный тестовый атрибут в XUNIT.
Теперь вы можете начать писать свой тестовый код в своем методе !!
Например, в приведенном ниже коде мы написали код для тестирования метода расширения, называемого EmailNormalize

Часть тестирования программного обеспечения, которая проверяет отдельные компоненты кода для проверки взаимодействий между различными модулями программной системы.
Мы используем эти тесты, используются для тестирования инфраструктуры приложения и всей структуры, часто включающей следующие компоненты:
Markop предоставляет абстракцию App Factory, чтобы облегчить реализацию тестирования чистой интеграции и просмотра вывода вместо использования внешних инструментов тестирования API, таких как почтальон.

Прежде всего, вы должны создать класс AppFactory расширить его из класса IntegrationTestFactory .
Далее вам нужно переопределить инициализатор, ConfiguretestServices, getUrl, методы ValidEaterResponse.
Затем вам нужно создать класс и расширить его из своего собственного класса AppFactory . Для более чистой реализации мы предлагаем создать класс для каждого контроллера в вашем API.
Используйте Atrribt Endpoint , чтобы указать шаблон для адресов запроса.
Далее вы должны определить метод внутри вашего класса и поместить свой атрибут испытания. Это может быть [Fact] или [Theory] или любой другой действительный тестовый атрибут в XUNIT.
Теперь вы можете начать писать свой тестовый код в своем методе !!
Например, в коде ниже мы написали код для проверки API SignIn

Внимание1 : При такими переменными во время выполнения, как controller и action внутри Endpoint Atrribute, будет киврировать с именем вашего класса и именем вашего метода .
Внимание2 : Тест Markop автоматически игнорирует [«Тест», «Тесты», «Контроллер»] в конце имени вашего класса.
Например, в приведенном выше коде значение controller будет «учетной записью», а значение action будет «подпись». Запросы будут отправлены в Endloint /Account/SignIn .
Тест определяет функциональность продукта, которая может быть выполнена путем агрегирования интеграционных тестов и сравнения фактического вывода с предопределенным выходом.
Мы используем сценарии вариантов для функционального тестирования. Например, в новостной системе мы должны проверить сценарии управления новостями, такие как создание , редактирование и удаление новостей, вы можете внедрить рабочие процессы транзакций в своей системе.
Как и в тестировании интеграции, Markop предоставляет заводскую абстракцию App, чтобы облегчить реализацию чистого функционального теста.
Initializer(IServiceProvider hostServices) : Метод Initializer дает вам возможность инициировать пользовательскую базу данных для тестирования. Все, что вам нужно сделать, это создать свой пользовательский инициализатор и назвать его здесь. Тест Маркопа позаботится об остальном !!
ConfigureTestServices(IServiceCollection services) Метод ConfigureTestServices дает вам возможность зарегистрировать/удалить службы. Таким образом, вы будете иметь полный контроль над зарегистрированными службами вашего приложения, прежде чем начать тестирование !!

GetUrl(string url, string controllerName, string testMethodName) GetUrl помогает вам построить правильный адрес, на который будет отправлена запрос HttpClient.
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse позволяет настроить проведен проверки ответа в соответствии с ожидаемым поведением вашего API.
Если вы заинтересованы в участии в этом проекте, прежде всего, мы хотели бы выразить мою сердечную благодарность.
Пожалуйста, не стесняйтесь обратиться к нам, если вам нужна помощь.
Грань