Интеграционное тестирование ASP.NET Core IPasswordHasher.HashPassword генерирует разные хэшиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Интеграционное тестирование ASP.NET Core IPasswordHasher.HashPassword генерирует разные хэши

Сообщение Anonymous »

Я провожу интеграционное тестирование своего приложения ASP.NET Core, в частности действий входа, и столкнулся с проблемой, из-за которой IPasswordHasher.HashPassword() генерирует разные хэши между моими тестовыми значениями. настройки и выполнения действия, и я не знаю, что с этим делать.
В настоящее время мой тест сначала создает пользователя, хэширует пароль с помощью HashPassword(null!, пароль)< /code>, а затем сохраняет его в базе данных и возвращает пользователя и нехешированный пароль. Затем я беру это и создаю данные формы, чтобы передать HttpClient для POST действия. Все это работает корректно, с той лишь разницей, что при создании пользователя перед тестом генерируемый хеш отличается от хеша, который генерируется при проверке пользователя в действии.
Единственное, о чем я могу думать, это то, что, поскольку IPasswordHasher является зависимостью с ограниченной областью, область, которую я создаю для создания пользователя перед тестом, отличается от области, созданной для действия, и, следовательно, две разные экземпляры и, возможно, два разных генератора случайных чисел для каждого экземпляра?
В настоящее время я работаю над этим, удаляя все регистрации для IPasswordHasher и регистрацию это снова с моей собственной реализацией MockPasswordHasher, которая просто получает хеш-код пароля и возвращает его в виде строки. Хотя это работает, меня беспокоит, что я отклоняюсь от исходного тестируемого приложения, поскольку то, что будет опубликовано, будет другим, и, следовательно, мои интеграционные тесты могут быть ошибочными.

Код: Выделить всё

internal sealed class MockPasswordHasher :
PasswordHasher
where TUser : class {
public override string HashPassword(
TUser user,
string password) => password.GetHashCode().ToString();
}
Есть ли у меня правильный способ преодолеть эту проблему или мне нужен хэшер паролей, который я регистрирую?


Подробнее здесь: https://stackoverflow.com/questions/791 ... ates-diffe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Интеграционное тестирование ASP.NET Core IPasswordHasher.HashPassword генерирует разные хэши
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • .NET — интеграционное тестирование с промежуточным программным обеспечением (PACT)
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как выполнить интеграционное тестирование с Quartz в Xunit
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как выполнить интеграционное тестирование с Quartz в Xunit
    Anonymous » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Как мне выполнить интеграционное тестирование библиотеки SpringBoot, это не приложение?
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»