Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

1 Answers

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());
}
like image 62
NikolaiDante Avatar answered Feb 22 '26 13:02

NikolaiDante



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!