小编bak*_*net的帖子

如何测试返回 Ok(object) 的 ASP.NET Core 2.2 Web API GET IActionResult?

在我的 Web API 中,我有一个简单的控制器操作:

[HttpGet]
[Route("[action]")]
public IActionResult GetApiStatus(string token)
{
    if (_token != token)
    {
        return StatusCode(401);
    }

    StatusModel status = _vesselUpdating.GetUpdatingStatus();

    return Ok(status);
}
Run Code Online (Sandbox Code Playgroud)

并且action返回StatusModel类型对象。我无法管理如何测试其返回状态。

我的测试方法如下:

[Theory]
[InlineData("wrong_token", StatusCodes.Status401Unauthorized)]
[InlineData("test_token", StatusCodes.Status200OK)]
[InlineData("", StatusCodes.Status401Unauthorized)]
[InlineData(null, StatusCodes.Status401Unauthorized)]
public void Get_GetAnyAction_WithVariusTokens_ReturnsCorrectStatusCode(string token, int code)
{
    _vesselUpdatingMock.Setup(v => v.GetUpdatingStatus()).Returns(_sampleStatusModel);
    IActionResult result;

    result = _updatesController.GetApiStatus(token);
    StatusCodeResult resultGetApiStatus = result as StatusCodeResult;

    Assert.Equal(code, resultGetApiStatus.StatusCode);
}
Run Code Online (Sandbox Code Playgroud)

调试时打开

result = _updatesController.GetApiStatus(token);
Run Code Online (Sandbox Code Playgroud)

StatusCode的属性是IActionResult200 但只有DeclaredType它的属性是null

结果调试

当断言时,最后我有resultGetApiStatus null …

c# unit-testing xunit asp.net-core

5
推荐指数
1
解决办法
1040
查看次数

根据包含字典键替换 Pandas DataFrame 列值

这是一个示例,其中当行是字典键时分配列: /sf/answers/1417569751/

我正在寻找的是当行包含字典键时分配列的情况。

例如(基于上面的例子):

import pandas as pd
df = pd.DataFrame({'col1': {0: 'aba', 1: 'abc', 2: 'abx'}})

#gives me a DataFrame
     col1 
0    aba #contains 'ba'
1    abc #will NOT be replaced
2    abx #contains 'bx'

dictionary = {'ba': 5, 'bx': 8}

#and I need to get:

     col1 
0    5
1    abc
2    8
Run Code Online (Sandbox Code Playgroud)

python dictionary replace dataframe pandas

4
推荐指数
1
解决办法
4541
查看次数