单元测试用例-通过查询字符串参数传递和获取值

时间:2019-04-30 11:49:25

标签: c# .net core

我正在使用.Net Core。我想将查询字符串参数中的值从单元测试函数传递给azure函数。我在传递和访问查询字符串参数值时遇到问题。

网址为https://localhost:4300/api/RolePageMapping?EnterpriseId=xyz

我想在Azure函数中使用查询字符串参数。代码如下。

 public static async Task<HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
            ILogger log)
        {

                string EnterpriseId = req.Query["EnterpriseId"];
        }

我想知道如何将值从单元测试函数传递给Azure函数?

[Fact]
public async Task Function_ReturnBadRequest()
{
    var request = new Mock<HttpRequest>();

    var logger = new MockLogger();

    var actualResult = await
    GetUserRolePageMapping.Run(request.Object, logger);
    actualResult.Should().BeOfType<HttpResponseMessage>();
}

1 个答案:

答案 0 :(得分:0)

您需要模拟HttpRequest中的HttpRequest.Query Property

[Fact]
public async Task Function_ReturnBadRequest() {
    //Arrange
    var expectedValue = new StringValues("Hello World"); //Or what you want
    var request = new Mock<HttpRequest>();
    request
        .Setup(_ => _.Query["EnterpriseId"])
        .Returns(expectedValue);

    var logger = new MockLogger();

    //Act
    var actualResult = await GetUserRolePageMapping.Run(request.Object, logger);

    //Assert
    actualResult.Should().BeOfType<HttpResponseMessage>();
}