MockTracer.UI
0.2.2
dotnet add package MockTracer.UI --version 0.2.2
NuGet\Install-Package MockTracer.UI -Version 0.2.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MockTracer.UI" Version="0.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MockTracer.UI --version 0.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MockTracer.UI, 0.2.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MockTracer.UI as a Cake Addin #addin nuget:?package=MockTracer.UI&version=0.2.2 // Install MockTracer.UI as a Cake Tool #tool nuget:?package=MockTracer.UI&version=0.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MockTracer
Инструмент позволяет ускорить написание юнит тестов, на основании ранее вызванных запросов (методов) в ходе которых инструментом был записан порядок вызова исполняемого кода с его аргументами и результатом обработки.
Возможности
- Пользовательский интерфейс со списком Стека выполнения
- Интерфейс выбора точки входа в тест и классов результаты вызова/выполенения которых будут заменены Mock объектами
- Tracer для отслеживания данных проходящих через
System.Net.Http.DelegatingHandler
, регистрируется автоматически - Tracer для отслеживания данных проходящих через
MediatR.IPipelineBehavior
, регистрируется автоматически - Tracer для отслеживания данных проходящих через
Microsoft.AspNetCore.Mvc.Filters.IAsyncActionFilter
, регистрируется автоматически - Tracer для отслеживания данных проходящих произвольный интерфейс, регистрируется
services.UseMockTracerUiService((s) => s.DecorateVirtual<ISomeInterface>())
- Tracer для отслеживания данных проходящих через
System.Data.IDbConnection
, регистрируетсяservices.UseMockTracerUiService((s) => s.DecorateDbProvider<ISomeConnectionProvider>())
- Формирование тестого класса с методом в формате "AAA" UnitTest
Регистрация инструмента
Переменная окружения "MOCKTRACER_ENABLE": "true"
В секции services
public void ConfigureServices(IServiceCollection services)
{
// services...
// регистрация декораторов MockTracer и настроек генерацйии тестов, после регистрации основного кода!
services.UseMockTracerUiService((s) =>
{
// регистрация провайдера прослуживающего IDBConection
s.DecorateDbProvider<IDbProvider>();
// регистрация произвольного интерфейса
s.DecorateVirtual<IDataSource>();
},
// переопределение настроек генерации
s => { s.GenerationSetting.DefaultFolder = @"..\MockTracer.Test\Generated"; });
}
В секции app
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// app...
app.UseRouting();
// Рагистрация интерфейса MockTracer после регистрации UseRouting()
app.UseMockTracerUiApp();
/// app...
}
Базовый тестовый класс
Сформированный тестовый класс основан на тестовом классе MockTracer.TestBase
Что бы успешно запустить сгенерированный тест предлагается два решения:
- Nuget
MockTracer.Test
в проект с тестами - Скопировать исходный код базового класса и методы расширения из репозитория в проект с Unittest
Ограничения
- После регистрации MockTracer снижается производительность, инструмент необходимо использовать локально в среде разработчика
- Не для всех видов классов возможно реализовать операцию сериализации, для таких фрагментов кода (DTO классов) не возможно сгенерировать тестовый класс в полном объеме.
- Запись Mock доступна для классов зарегистрированных как
ServiceLifetime.Scoped
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Castle.Core (>= 5.1.1)
- MediatR (>= 11.1.0)
- MediatR.Extensions.Microsoft.DependencyInjection (>= 11.0.0)
- Microsoft.AspNetCore.Components.WebAssembly.Server (>= 6.0.10)
- Microsoft.EntityFrameworkCore.Sqlite (>= 6.0.11)
- Microsoft.VisualStudio.Web.CodeGeneration.Design (>= 5.0.0)
- ObjectDumper.NET (>= 4.1.3)
- Scrutor (>= 4.2.0)
- SequentialGuid (>= 4.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.2.2 | 338 | 10/22/2023 |
0.1.1-beta | 253 | 1/10/2023 |