单元测试.NET Core 3 Web API控制器

太阳

我在.NET Core v3 Web API项目中有一个控制器

public class MyController : ControllerBase
{
    private readonly IService service;

    public MyController (IService service)
    {
        this.service= service;
    }

    HttpGet("{id}")]
    public async Task<ActionResult<MyModel>> Get(int id)
    {
        var record= await service.GetAsync(id);

        if (record== null)
            return NotFound();

        return Ok(Convert to model before returning);
    }
 }

我正在尝试Get使用NUnit为该方法编写单元测试

这是我所拥有的,它的工作原理:

[Test]
public void Get_WhenCalled_ReturnNotFound()
{
    service = new Mock<IService>();
    controller = new MyController(service.Object);

    service.Setup(service => service.GetAsync(1)).ReturnsAsync((MyType)null);

    var result = controller.Get(1);

    Assert.That(result.Result.Result, Is.TypeOf<NotFoundResult>());
}

但是在断言中,我必须打电话result.Result.Result看起来有点奇怪。我可以解决这个问题吗?

我也尝试过以下行,但相同:

service.Setup(service => service.GetAsync(1)).Returns(Task.FromResult((MyType)null));
杜尔加·普拉萨德(Durga Prasad)

您可以通过使用async / await编写测试来减少1结果。

[Test]
public async Task Get_WhenCalled_ReturnNotFound()
{
    service = new Mock<IService>();
    controller = new MyController(service.Object);

    service.Setup(service => service.GetAsync(1)).ReturnsAsync((MyType)null);

    var result = await controller.Get(1);

    Assert.That(result.Result, Is.TypeOf<NotFoundResult>());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单元测试-控制器未从ASP.NET Core Web API项目中的模拟IConfiguration中获取值

来自分类Dev

使用 xunit 和 moq 进行 net core api 控制器单元测试

来自分类Dev

ASP.NET Web API路由单元测试-未检测到控制器动作

来自分类Dev

Web API控制器单元测试

来自分类Dev

在单元测试.NET Core Web API中检查ModelState内容

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

来自分类Dev

ASP.Net Core单元测试异步控制器

来自分类Dev

测试控制器问题响应时,ASP.NET Core单元测试抛出Null异常

来自分类Dev

如何正确配置模拟依赖项以使用 Autofac 测试 Web Api (ASP.NET Core) 控制器

来自分类Dev

如何使用MSTEST对ASP.NET CORE控制器进行单元测试并添加伪造品

来自分类Dev

如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

来自分类Dev

在常规MVC控制器(而非Web API控制器)中使用身份的单元测试方法

来自分类Dev

在常规mvc控制器(不是Web api控制器)中使用标识的单元测试方法

来自分类Dev

单元测试 web api

来自分类Dev

如何使用XUnit对Web API控制器进行单元测试

来自分类Dev

如何在ASP.NET Core Web API中将新控制器设置为默认控制器

来自分类Dev

Asp.Net Core MVC Web应用程序中的单元测试

来自分类Dev

对.NET Core Web应用程序进行单元测试的正确方法是什么?

来自分类Dev

为什么我的ASP.Net Core Web API控制器不返回XML?

来自分类Dev

ASP.NET Core 3.0 Web API-控制器方法未命中

来自分类Dev

NET Core Web API的控制器上出现“找不到页面”错误

来自分类Dev

在 Web api 控制器上调用方法时出错 - .Net Core 1.1 / EF 1.1

来自分类Dev

如何在 ASP Net Core 中授权 Web API 控制器

来自分类Dev

.Net Core 2.0 Web API 控制器不工作并出现 404

来自分类Dev

如何更改ASP Net Core 3 API默认启动控制器(/启动URL)

来自分类Dev

单元测试API控制器(asp.net 5,xunit)时未将对象设置为引用

来自分类Dev

如何单元测试Core MVC控制器动作是否调用ControllerBase.Problem()

来自分类Dev

添加用于ASP.NET 5控制器单元测试的会话

Related 相关文章

  1. 1

    单元测试-控制器未从ASP.NET Core Web API项目中的模拟IConfiguration中获取值

  2. 2

    使用 xunit 和 moq 进行 net core api 控制器单元测试

  3. 3

    ASP.NET Web API路由单元测试-未检测到控制器动作

  4. 4

    Web API控制器单元测试

  5. 5

    在单元测试.NET Core Web API中检查ModelState内容

  6. 6

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  7. 7

    如何对返回匿名对象的ASP.NET Core MVC控制器进行单元测试?

  8. 8

    ASP.Net Core单元测试异步控制器

  9. 9

    测试控制器问题响应时,ASP.NET Core单元测试抛出Null异常

  10. 10

    如何正确配置模拟依赖项以使用 Autofac 测试 Web Api (ASP.NET Core) 控制器

  11. 11

    如何使用MSTEST对ASP.NET CORE控制器进行单元测试并添加伪造品

  12. 12

    如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

  13. 13

    在常规MVC控制器(而非Web API控制器)中使用身份的单元测试方法

  14. 14

    在常规mvc控制器(不是Web api控制器)中使用标识的单元测试方法

  15. 15

    单元测试 web api

  16. 16

    如何使用XUnit对Web API控制器进行单元测试

  17. 17

    如何在ASP.NET Core Web API中将新控制器设置为默认控制器

  18. 18

    Asp.Net Core MVC Web应用程序中的单元测试

  19. 19

    对.NET Core Web应用程序进行单元测试的正确方法是什么?

  20. 20

    为什么我的ASP.Net Core Web API控制器不返回XML?

  21. 21

    ASP.NET Core 3.0 Web API-控制器方法未命中

  22. 22

    NET Core Web API的控制器上出现“找不到页面”错误

  23. 23

    在 Web api 控制器上调用方法时出错 - .Net Core 1.1 / EF 1.1

  24. 24

    如何在 ASP Net Core 中授权 Web API 控制器

  25. 25

    .Net Core 2.0 Web API 控制器不工作并出现 404

  26. 26

    如何更改ASP Net Core 3 API默认启动控制器(/启动URL)

  27. 27

    单元测试API控制器(asp.net 5,xunit)时未将对象设置为引用

  28. 28

    如何单元测试Core MVC控制器动作是否调用ControllerBase.Problem()

  29. 29

    添加用于ASP.NET 5控制器单元测试的会话

热门标签

归档