我嘲笑過IPasswordHasher<User>>:
private readonly Mock<IPasswordHasher<User>> _passwordHasher = new();
private readonly AccountController _accountController;
public AccountControllerTests()
{
_accountController = new AccountController(_passwordHasher.Object);
}
AccountController然后我在我的測驗方法中呼叫了這個:
var result = _accountController.Login(dto);
在此方法hash中,即使useranddto.Password不為 null 并且它在“正常”(非模擬)環境中作業,也為 null:
var hash = _passwordHasher.HashPassword(user, dto.Password);
uj5u.com熱心網友回復:
您需要為模擬物件設定方法呼叫。
在測驗類的建構式中,您可以例如添加
_passwordHasher
.Setup(m => m.HashPassword(It.IsAny<User>(), It.IsAny<string>()))
.Returns("Hash value");
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/464427.html
