text 测试api控制器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 测试api控制器相关的知识,希望对你有一定的参考价值。

controller:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new[] { "value1", "value2" };
    }

    [HttpGet("{id}")]
    public IActionResult Get(int id)
    {
        if (id < 1)
        {
            return BadRequest($"Invalid request for id {id}");
        }

        return Content($"Value {id}");
    }

    [HttpPost("StartJob")]
    public IActionResult StartJob()
    {
        return Ok("Batch Job Started");
    }
}

Unit Test:

public class ValuesControllerShould
{
    [Fact]
    public void ReturnValues() {
        var sut = new ValuesController();
        string[] result = sut.Get().ToArray();

        Assert.Equal(2, result.Length);
        Assert.Equal("value1", result[0]);
        Assert.Equal("value2", result[1]);
    }

    [Fact]
    public void ReturnBadRequest() {
        var sut = new ValuesController();
        IActionResult result = sut.Get(0);
        var badRequestResult = Assert.IsType<BadRequestObjectResult>(result);
        Assert.Equal("Invalid request for id 0", badRequestResult.Value);
    }

    [Fact]
    public void ReturnContent() {
        var sut = new ValuesController();
        IActionResult result = sut.Get(1);
        var content = Assert.IsType<ContentResult>(result);
        Assert.Equal("Value 1", content.Content);
    }

    [Fact]
    public void StartJobOk() {
        var sut = new ValuesController();
        IActionResult result = sut.StartJob();
        var okResult = Assert.IsType<OkObjectResult>(result);
        Assert.Equal("Batch Job Started", okResult.Value);
    }
}

以上是关于text 测试api控制器的主要内容,如果未能解决你的问题,请参考以下文章

text 为api创建关联控制器

text 客户端服务器测试api

text .net核心中的api控制器

text 在.net核心中创建api控制器

text 将文件从Angular发送到.net核心api控制器

text 控制器测试