伪造/模拟.Net Core依赖注入控制台应用程序

DevyDev

我正在尝试创建集成测试,但这也取决于我要伪造的第三方服务。我有控制台应用程序.Net Core 3.1。

我的意思是:

           var configuration = GetConfiguration();

            var serviceProvider = GetServiceProvider(configuration);

            var appService = serviceProvider.GetService<IConsumerManager>();

            appService.StartConsuming(commandLineArguments);
 private static IConfiguration GetConfiguration()
            => new ConfigurationBuilder().AddJsonFile(ConfigurationFile, true, true).Build(); 

private static ServiceProvider GetServiceProvider(IConfiguration config)
    {
        IServiceCollection collection = new ServiceCollection();

        collection.Configure<ConsumerConfig>(options => config.GetSection("consumerConfig").Bind(options));

        collection.AddSingleton<IConsumerManager, ConsumerManager>();
        collection.AddTransient<ISelfFlushingQueue, SelfFlushingQueue>();
        collection.AddTransient<IConsumer, Consumer>();
        collection.AddTransient<IConverter, Converter>();

        collection.AddFactory<IConsumerWorker, ConsumerWorker>();

        return collection.BuildServiceProvider();
    }

就我而言,我想伪造给消费者的电话。我想知道是否还有其他方法可以伪造对它的调用,而不仅仅是创建Fake类并将其添加到DI中。例如:

collection.AddTransient<IConsumer, FakeConsumer>(); 

也许我可以使用FakeItEasy,NUnit或任何其他lib来伪造此内容?

灰泥

您可以使用自己喜欢的模拟框架创建模拟并将其添加到服务集合中。

使用最小起订量的示例:

var mock = new Mock<IConsumer>();
mock.Setup(foo => foo.DoSomething("ping")).Returns(true); // this line is just an example of mocking a method named DoSomething, you'll have to adapt it to the methods you want to mock

collection.AddTransient<IConsumer>(() => mock.Object); 

https://github.com/Moq/moq4/wiki/快速入门

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

自托管的.NET Core控制台应用程序中的Startup.cs

来自分类Dev

如何在asp.net控制台应用程序中使用依赖项注入?

来自分类Dev

将HttpClient与.NET Core控制台应用程序一起使用

来自分类Dev

.Net Core /控制台应用程序/配置/ XML

来自分类Dev

在Mac或Windows上运行.NET Core控制台应用程序

来自分类Dev

启动控制台应用程序时.NET Core 3.0获取无效的runtimeconfig.json

来自分类Dev

.NET Core 3.0控制台应用程序无法读取文件,引发UnauthorizedAccessException

来自分类Dev

.NET Core 3.1控制台应用程序作为Windows服务

来自分类Dev

如何获取.Net Core控制台应用程序.exe文件所在目录的路径?

来自分类Dev

将IConfiguration注入.NET Core 3.0中的Program.cs(控制台应用程序)中

来自分类Dev

如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

来自分类Dev

如何从提供程序(C#.NET Core控制台应用程序)获取Args?

来自分类Dev

.NET Core 3.1控制台应用程序将无法在Windows 7上运行

来自分类Dev

.NET Core控制台应用程序如何部署到Kubernetes?

来自分类Dev

如何在.NET Core控制台应用程序中设置DI容器?

来自分类Dev

在.NET Core控制台应用程序中为EF Core DbContext服务错误建立了依赖项注入

来自分类Dev

在Linux App Service的Docker容器中运行.Net Core控制台应用程序

来自分类Dev

.NET Core DI-在控制台应用程序中处理Singleton服务

来自分类Dev

将HttpClient与.NET Core控制台应用程序一起使用

来自分类Dev

.Net Core控制台应用程序-调试失败-与远程端点的连接已终止

来自分类Dev

如何在.NET Core控制台应用程序中实现MVVM?

来自分类Dev

将 .NET Core 控制台应用程序转换为自包含应用程序

来自分类Dev

将 NLog 连接并注入 .NET Core 控制台应用程序

来自分类Dev

.NET Core 控制台应用程序的实体框架

来自分类Dev

从 .NET Core 控制台应用程序内部将 .NET Framework 控制台应用程序启动到新窗口中

来自分类Dev

Visual Studio C# 控制台应用程序 (.NET Core) 模板不同

来自分类Dev

在标准 .net 控制台应用程序中使用 .Net Core dll

来自分类Dev

跳过 .NET Core 控制台应用程序的依赖项检查

来自分类Dev

如何在 .Net Core 控制台应用程序中引用 .Net Core 库

Related 相关文章

  1. 1

    自托管的.NET Core控制台应用程序中的Startup.cs

  2. 2

    如何在asp.net控制台应用程序中使用依赖项注入?

  3. 3

    将HttpClient与.NET Core控制台应用程序一起使用

  4. 4

    .Net Core /控制台应用程序/配置/ XML

  5. 5

    在Mac或Windows上运行.NET Core控制台应用程序

  6. 6

    启动控制台应用程序时.NET Core 3.0获取无效的runtimeconfig.json

  7. 7

    .NET Core 3.0控制台应用程序无法读取文件,引发UnauthorizedAccessException

  8. 8

    .NET Core 3.1控制台应用程序作为Windows服务

  9. 9

    如何获取.Net Core控制台应用程序.exe文件所在目录的路径?

  10. 10

    将IConfiguration注入.NET Core 3.0中的Program.cs(控制台应用程序)中

  11. 11

    如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

  12. 12

    如何从提供程序(C#.NET Core控制台应用程序)获取Args?

  13. 13

    .NET Core 3.1控制台应用程序将无法在Windows 7上运行

  14. 14

    .NET Core控制台应用程序如何部署到Kubernetes?

  15. 15

    如何在.NET Core控制台应用程序中设置DI容器?

  16. 16

    在.NET Core控制台应用程序中为EF Core DbContext服务错误建立了依赖项注入

  17. 17

    在Linux App Service的Docker容器中运行.Net Core控制台应用程序

  18. 18

    .NET Core DI-在控制台应用程序中处理Singleton服务

  19. 19

    将HttpClient与.NET Core控制台应用程序一起使用

  20. 20

    .Net Core控制台应用程序-调试失败-与远程端点的连接已终止

  21. 21

    如何在.NET Core控制台应用程序中实现MVVM?

  22. 22

    将 .NET Core 控制台应用程序转换为自包含应用程序

  23. 23

    将 NLog 连接并注入 .NET Core 控制台应用程序

  24. 24

    .NET Core 控制台应用程序的实体框架

  25. 25

    从 .NET Core 控制台应用程序内部将 .NET Framework 控制台应用程序启动到新窗口中

  26. 26

    Visual Studio C# 控制台应用程序 (.NET Core) 模板不同

  27. 27

    在标准 .net 控制台应用程序中使用 .Net Core dll

  28. 28

    跳过 .NET Core 控制台应用程序的依赖项检查

  29. 29

    如何在 .Net Core 控制台应用程序中引用 .Net Core 库

热门标签

归档