根据文档,以下内容向响应中添加了一个位置标头。
// 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"]);