【问题标题】:Delete an item unit test in web api在 web api 中删除项目单元测试
【发布时间】:2016-06-07 19:08:38
【问题描述】:

我在 asp.net web api 中有删除方法。

[HttpDelete("{id}")]
public void Delete(int id)
{
    _repository.DeleteRestrictions(id);
}

不确定如何对其进行单元测试。我的部分代码

[Fact]
public void DeleteRestrictionsRepository()
{
    var mockRepository = new Mock<IRepository>();
    var repo = mockRepository.Object;
    var demoItem = GetTestItems();
    var controller = new MyController(repo);
    var result = controller.Delete(2) as OkNegotiatedContentResult<Restrictions>;
    controller.Delete(123);
}

【问题讨论】:

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


    【解决方案1】:

    你没有从控制器返回任何东西,所以你可以测试的结果很少。

    您可以检查存储库上的 Delete 是否被调用。

    [Fact]
    public void DeleteRestrictionsRepository()
    {
        const int DeletedId = 123;
        var mockRepository = new Mock<IRepository>();
        var controller = new MyController(mockRepository.Object);
        controller.Delete(DeletedId);
    
        mockRepository.Verify(v => v.DeleteRestrictions(DeletedID), Times.Once());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 2013-10-10
      相关资源
      最近更新 更多