【问题标题】:How to test a header property in .netcore-3.0?如何在 .net core-3.0 中测试标头属性?
【发布时间】:2019-10-21 14:42:59
【问题描述】:

根据documentation,下面在响应中添加一个Location头。

// 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 中,我应该如何编写单元测试的 Assert 部分以测试 Location 标头的值?

[Fact]
public async Task Posting_A_ValidTodoItem_Creates_LocationHeader()
{

    // Arrange
    //...

    // Act
    var result = await.controller.PostToDoItem(toDoItem)

    // Assert
    //???
}

测试状态代码和响应正文已经很简单了,但我还不能测试标头。

【问题讨论】:

    标签: c# unit-testing asp.net-core xunit asp.net-core-3.0


    【解决方案1】:

    你可以测试这样的东西,

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

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2019-06-08
      • 2020-07-21
      • 2021-05-15
      相关资源
      最近更新 更多