单元测试-控制器未从ASP.NET Core Web API项目中的模拟IConfiguration中获取值

Zeeshan阿迪尔

我正在尝试使用模拟服务对ASP.NET Core Web API中的登录操作进行单元测试,所有模拟工作都很好,但是当我尝试模拟我的IConfiguration文件时,控制器不会从中获取值。

这是调用我的控制器动作的我的单元测试代码:

[Fact]
public async Task SignInTest()
{
    // Arrange
    var requestVM = new CustomerSignInRequestVM
    {
        EmailPhone = "03026993900",
        RegNum = "Abc123"
    };

    var config = new Mock<IConfiguration>();
    //HERE I AM SETTING ALL MY CONFIGURATION VALUES TO RETURN SOME FAKE VALUES

    //config.Setup(cf => cf.GetSection("Jwt:Encryptionkey").Value).Returns("01 02 03");    
    config.Setup(x => x.GetSection("Jwt:Encryptionkey").Value).Returns("abc");
    config.Setup(x => x.GetSection("Jwt:Issuer").Value).Returns("test.com");
    config.Setup(x => x.GetSection("Jwt:ExpiryTimeInMinutes").Value).Returns("Jwt:ExpiryTimeInMinutes");   

    //THIS MOCKING WORK FINE IN CONTROLLER ACTION
    var customerApplication = new Mock<ICustomerApplication>();
    customerApplication.Setup(app => app.GetCustomer(It.IsAny<SignIn>())).ReturnsAsync(GetCustomerMockData);

    var claimApplication = new Mock<IClaimApplication>();
    claimApplication.Setup(app => app.GetListByRole(It.IsAny<ApplicationRole>())).ReturnsAsync(new List<ApplicationClaim> { new ApplicationClaim { Active = true, ClaimCode = "AUC_GA", ClaimLabel = "Auction.GetAll" } });

    //I'm also injecting my IConfiguration object here in my controller setup

    var controller = new CustomerController(customerApplication.Object, null, claimApplication.Object, null, null, config.Object, null);

    // Act
    var response = await controller.SignIn(requestVM, new CancellationToken());
    var okObjectResult = response as OkObjectResult;

    // Assert
    Assert.Equal(200, okObjectResult.StatusCode);
}

但是当我尝试从控制器动作内部的注入 IConfiguration服务中检索值时,如下所示:

var Issuer = Configuration["Jwt:Issuer"],

这又回到null了我,我不确定在这里我在做什么错。

恩科西

x.GetSection("Jwt:Issuer").Value尚未设置Configuration["Jwt:Issuer"]这是两种不同的情况,将导致上述问题。

与尝试正确模拟所有内容相比,最好构建一个具有所有所需功能的内存配置。

//...

var fakeValues = new Dictionary<string, string>
{
    {"Jwt:Encryptionkey", "abc"},
    {"Jwt:Issuer", "test.com"},
    {"Jwt:ExpiryTimeInMinutes", "some value"}
};

IConfiguration config = new ConfigurationBuilder()
    .AddInMemoryCollection(fakeValues)
    .Build();

//...

var controller = new CustomerController(customerApplication.Object, null, 
        claimApplication.Object, null, null, config, null);

//...

ASP.NET Core中的参考配置

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在常规MVC控制器(而非Web API控制器)中使用身份的单元测试方法

来自分类Dev

在Asp.net单元测试中缺少对System.Web.Mvc的引用?

来自分类Dev

ASP.NET Web API路由单元测试-未检测到控制器动作

来自分类Dev

如何使用ASP.NET 5(MVC 6)中的Response属性对控制器动作进行单元测试?

来自分类Dev

单元测试API控制器(asp.net 5,xunit)时未将对象设置为引用

来自分类Dev

将单元测试附加到ASP.NET Core项目

来自分类Dev

如何使用MSTEST对ASP.NET CORE控制器进行单元测试并添加伪造品

来自分类Dev

为什么我的ASP.Net Core Web API控制器不返回XML?

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

来自分类Dev

如何检查ASP.NET Core 3.0的单元测试中是否记录了错误?

来自分类Dev

ASP.NET Core 3.0 Web API-控制器方法未命中

来自分类Dev

如何使用XUnit对Web API控制器进行单元测试

来自分类Dev

测试控制器问题响应时,ASP.NET Core单元测试抛出Null异常

来自分类Dev

单元测试.NET Core 3 Web API控制器

来自分类Dev

在单元测试.NET Core Web API中检查ModelState内容

来自分类Dev

如何在ASP.NET Core Web API中将新控制器设置为默认控制器

来自分类Dev

如何在ASP.NET Core MVC中对RazorViewEngineOptions进行单元测试?

来自分类Dev

Asp.Net Core MVC Web应用程序中的单元测试

来自分类Dev

在常规mvc控制器(不是Web api控制器)中使用标识的单元测试方法

来自分类Dev

在Asp.net单元测试中缺少对System.Web.Mvc的引用?

来自分类Dev

Web API控制器单元测试

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

ASP.Net Core单元测试异步控制器

来自分类Dev

在 asp.net core 中单元测试 UserManager<IdentityUser>

来自分类Dev

如何在 ASP Net Core 中授权 Web API 控制器

来自分类Dev

如何正确配置模拟依赖项以使用 Autofac 测试 Web Api (ASP.NET Core) 控制器

来自分类Dev

Asp.Net Core WebApi:创建单元测试

来自分类Dev

使用 xunit 和 moq 进行 net core api 控制器单元测试

Related 相关文章

  1. 1

    在常规MVC控制器(而非Web API控制器)中使用身份的单元测试方法

  2. 2

    在Asp.net单元测试中缺少对System.Web.Mvc的引用?

  3. 3

    ASP.NET Web API路由单元测试-未检测到控制器动作

  4. 4

    如何使用ASP.NET 5(MVC 6)中的Response属性对控制器动作进行单元测试?

  5. 5

    单元测试API控制器(asp.net 5,xunit)时未将对象设置为引用

  6. 6

    将单元测试附加到ASP.NET Core项目

  7. 7

    如何使用MSTEST对ASP.NET CORE控制器进行单元测试并添加伪造品

  8. 8

    为什么我的ASP.Net Core Web API控制器不返回XML?

  9. 9

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  10. 10

    如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

  11. 11

    如何检查ASP.NET Core 3.0的单元测试中是否记录了错误?

  12. 12

    ASP.NET Core 3.0 Web API-控制器方法未命中

  13. 13

    如何使用XUnit对Web API控制器进行单元测试

  14. 14

    测试控制器问题响应时,ASP.NET Core单元测试抛出Null异常

  15. 15

    单元测试.NET Core 3 Web API控制器

  16. 16

    在单元测试.NET Core Web API中检查ModelState内容

  17. 17

    如何在ASP.NET Core Web API中将新控制器设置为默认控制器

  18. 18

    如何在ASP.NET Core MVC中对RazorViewEngineOptions进行单元测试?

  19. 19

    Asp.Net Core MVC Web应用程序中的单元测试

  20. 20

    在常规mvc控制器(不是Web api控制器)中使用标识的单元测试方法

  21. 21

    在Asp.net单元测试中缺少对System.Web.Mvc的引用?

  22. 22

    Web API控制器单元测试

  23. 23

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  24. 24

    ASP.Net Core单元测试异步控制器

  25. 25

    在 asp.net core 中单元测试 UserManager<IdentityUser>

  26. 26

    如何在 ASP Net Core 中授权 Web API 控制器

  27. 27

    如何正确配置模拟依赖项以使用 Autofac 测试 Web Api (ASP.NET Core) 控制器

  28. 28

    Asp.Net Core WebApi:创建单元测试

  29. 29

    使用 xunit 和 moq 进行 net core api 控制器单元测试

热门标签

归档