【问题标题】:How to create application scope for nunit for ASP.NET Core 3.1 project如何为 ASP.NET Core 3.1 项目的 nunit 创建应用程序范围
【发布时间】:2022-11-02 23:48:08
【问题描述】:

我是单元测试的新手,我认为我需要获取我的 ASP.NET Core 3.1 Web 的应用程序范围,以便我可以获得一些范围内的服务以用于测试。

问题:如何获取 app 对象以便获取范围?

我看到的错误是

无法从根提供程序解析范围服务“className”。

从谷歌搜索中,我想我看到问题在于className 是在Startup.csservices.AddScoped<className>() 中的应用程序ConfigureServices 方法中创建的。

我认为问题在于 Nunit 没有在与正在测试的应用程序相同的范围内运行(?)(不确定)。

无论如何,我如何在 nunit 测试框架中获取应用程序?

TIA,

欧文

【问题讨论】:

    标签: nunit asp.net-core-3.1


    【解决方案1】:

    部分答案:

    IWebhostBuilder builder = Project.Program.CreateTestHostBuilder(new string[] {});
    IServiceProvider _serivces = builder.Build.Services();
    
    IServiceScope scope = _services.CreateScope();
    className classVar = scope.ServiceProvider.GetRequiredService<className>();
    

    所以现在我有一个范围和访问 ServiceProvider 来获取注入服务的实例。

    我仍然不知道如何获取应用程序实例(或者,真正的问题是:如何注入不同版本的类进行测试?)。

    谢谢,

    欧文

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多