[英]moq testing void method for Delete
我需要一些幫助來測試void方法。 有人可以解釋無效方法如何與測試一起工作。
我的服務如下:
public void DeleteUser(int userId)
{
var user = _dbcontext.Users.FirstOrDefault(usr => usr.Id == userId);
{
if (user != null)
{
_dbcontext.Users.Remove(user);
}
_dbcontext.SaveChanges();
}
}
[TestClass]
public class UnitTest
{
[TestMethod]
public void DeleteUser()
{
mockContext = new Mock<UserService>();
mockContext.SetUp(x => x.Users(It.IsAny<int>()).Returns(userid)
}
}
無效方法可以做兩件事:
由於您的方法不直接編輯狀態,因此您要測試的是,如果找到用戶,則調用Remove和SaveChanges,否則就不調用任何東西。
Mock有一種特殊的Verify方法,您可以在兩種情況下使用。 這是如何驗證是否調用SaveChanges的示例(順便說一句,您可以將其放入其中):
mockContext
.Verify(c => c.SaveChanges(), Times.Once());
或(如果用戶不存在):
mockContext
.Verify(c => c.SaveChanges(), Times.Never());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.