模拟 IPasswordHasher.HashPassword returns 空
Mocked IPasswordHasher.HashPassword returns null
我嘲笑过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
为空,即使 user
和 dto.Password
不为空并且它在“正常”(非模拟)环境中工作:
var hash = _passwordHasher.HashPassword(user, dto.Password);
您需要为模拟对象设置方法调用。
在测试的构造函数中 class,例如,您可以添加
_passwordHasher
.Setup(m => m.HashPassword(It.IsAny<User>(), It.IsAny<string>()))
.Returns("Hash value");
我嘲笑过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
为空,即使 user
和 dto.Password
不为空并且它在“正常”(非模拟)环境中工作:
var hash = _passwordHasher.HashPassword(user, dto.Password);
您需要为模拟对象设置方法调用。
在测试的构造函数中 class,例如,您可以添加
_passwordHasher
.Setup(m => m.HashPassword(It.IsAny<User>(), It.IsAny<string>()))
.Returns("Hash value");