在我的 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 …
这是一个示例,其中当行是字典键时分配列: /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) asp.net-core ×1
c# ×1
dataframe ×1
dictionary ×1
pandas ×1
python ×1
replace ×1
unit-testing ×1
xunit ×1