如何确定要在方法中测试的内容

How to determine what to test in a method

我是单元测试的新手。我正在努力的一件事是确定 为我的方法编写什么类型的测试。使用下面的代码作为 例如,我应该在这里测试什么?我可以进行哪些测试 写。

[HttpGet]
[Route("GetPosts")]
public async Task<IActionResult> GetPosts()
{
    try
    {
        var posts = await postRepository.GetPosts();
        if (posts == null)
        {
            return NotFound();
        }

        return Ok(posts);
    }
    catch (Exception)
    {
        return BadRequest();
    }
}

在单元测试中,您测试的是一小段代码,例如一个方法。重要的是单元测试只测试你要测试的方法中的代码。它不测试任何依赖项。他们必须被嘲笑(例如,最小起订量)。

我认为你在这里处理三个测试用例(=三个测试):

  1. 找到帖子

  2. 找不到帖子

  3. 出现异常

重要的是单元测试不调用实际的存储库。您必须模拟它并模拟 GetPosts 方法。

实施单元测试后,您还可以考虑实施一些集成测试。不同之处在于您在测试中包含了实际的存储库。