小编Cho*_*ard的帖子

等待模拟方法时单元测试中的 NRE

我正在尝试使用 mstest 为 .net Core 3 Web API 构建单元测试。

我也在使用:

  • 自动夹具
  • 起订量
  • AutoFixture.AutoMoq

NotFound()当没有找到啤酒时,这个单元测试应该返回一个响应。

    private IFixture _fixture;
    private BeerController _beerController;
    private Mock<IBeerService> _mockBeerService;

    [TestInitialize]
    public void Initialize()
    {
        _fixture = new Fixture().Customize(new AutoMoqCustomization());
        _mockBeerService = _fixture.Freeze<Mock<IBeerService>>();
        _beerController = _fixture.Create<BeerController>();
    }

    [TestMethod]
    public async Task WhenCallGetBeerWithoutMatchReturnNotFound404()
    {
        //Arrange
        int beerId = _fixture.Create<int>();
        _mockBeerService.Setup(x => x.GetBeer(It.IsAny<int>())).Returns((Task<Beer>)null);

        //Act
        var actionResult = await _beerController.Get(beerId);

        //Assert
        Assert.IsInstanceOfType(actionResult.Result, typeof(NotFoundResult));
    }
Run Code Online (Sandbox Code Playgroud)

这就是我要测试的功能:

    [HttpGet("{beerId:int}")]
    public async Task<ActionResult<beer>> Get(int beerId)
    {
        try
        {
            var beer = await _beerService.Getbeer(beerId); …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq autofixture .net-core

3
推荐指数
1
解决办法
64
查看次数

标签 统计

.net-core ×1

autofixture ×1

c# ×1

moq ×1

unit-testing ×1