У меня есть функция, которая создает пользователя, сохраняет его в базе данных и подписывает его на список Mailchimp. У меня есть модульный тест, который проверяет эту функцию.
Теперь я действительно хочу протестировать эту функцию, но я не хочу, чтобы «высмеянный» пользователь был добавлен в список рассылки.
Есть ли способ частично исключить выполнение кода, когда функция запускается в режиме модульного тестирования?
Так, например, у меня есть эта функция (simplefied)
public async Task<CreateUserResponse> Create(CreateUserRequest createRequest){
//Save user to database
var encryptedPassword = encryptor.EncryptPassword(createRequest.Password, salt);
var user = new UserDomain(){
EmailAddress = createRequest.EmailAddress,
Password = encryptedPassword,
Salt = salt
}
_dbContext.Users.Add(user);
//Subscribe to mailing list
var mailChimpAdapter = new MailChimpAdapter(_configuration);
mailChimpAdapter.Subscribe(user);
return new CreateUserResponse(user);
}
Теперь я хочу запустить модульный тест чтобы протестировать эту функцию, но без подписки на нее. Лучшее, что я могу придумать, - это использовать переменную в файле конфигурации и читать ее внутри функции. А может есть способ получше?