Setup
использует input.NewPassword
, что из теста равно
UpdatePasswordModel input = new UpdatePasswordModel() {
//...
NewPassword = "password1",
//...
};
//...
user.Setup(x => x.UpdatePassword(10000, input.NewPassword)).Returns("User record updated.");
//...
, но в тестируемом методе метод вызывается с другим значением
//...
user.UserPassword = EncryptPassword(model.NewPassword);
//...
var result = _userDataAccess.UpdatePassword(user.UserKey, user.UserPassword);
, которое не соответствуетто, что ожидалось в настройке.
Когда надсмотренный член не вызывается с ожидаемым, он вернет тип возвращаемого значения по умолчанию, который в этом случае будет null
Вам нужно будет либо убедиться, что в ожидании настройки используется правильное значение
Например
user
.Setup(x => x.UpdatePassword(10000, EncryptPassword(input.NewPassword)))
.Returns("User record updated.");
, либо ослабить ожидание установки с помощью сопоставления аргументов, например It.IsAny<T>()
user
.Setup(x => x.UpdatePassword(10000, It.IsAny<string>()))
.Returns("User record updated.");