如何在 .netcore-3.0 中测试标头属性?



根据文档,以下内容向响应中添加了一个位置标头。

// POST: api/TodoItems
[HttpPost]
public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
{
_context.TodoItems.Add(todoItem);
await _context.SaveChangesAsync();
//return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
}

在 Xunit 中,我应该如何编写单元测试的断言部分以测试 Location 标头的值?

[Fact]
public async Task Posting_A_ValidTodoItem_Creates_LocationHeader()
{
// Arrange
//...
// Act
var result = await.controller.PostToDoItem(toDoItem)
// Assert
//???
}

测试状态代码和响应正文很简单,但我还没有能够测试标头。

你可以测试这样的东西,

// Assert
Assert.NotNull(controller.Response.Header["Location"]);

最新更新