简体   繁体   中英

Delete an item unit test in web api

I have the delete method in asp.net web api.

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

Not sure how to do an unit test for it. My partial code

[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);
}

You're not returning anything from the controller, so there is very little result you can test.

You can check that the Delete upon the repository was called tho.

[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());
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM