Reduza o seu custo para testes rápidos ao usar BCrypt

Se você estiver usando o BCrypt Ruby, poderá economizar bastante tempo ao executar seus testes de unidade, reduzindo o custo. Por padrão BCrypt::Password.create(unencrypted_password), usará um custo de 10. Eu diminuí um conjunto de testes RSpec de 25 segundos para apenas 4, apenas definindo o custo como mínimo (4) no modo de teste.

def password=(unencrypted_password)
@password = unencrypted_password
unless unencrypted_password.blank?
if Rails.env.test?
cost
= BCrypt::Engine::MIN_COST
else
cost
= BCrypt::Engine::DEFAULT_COST
end
self.password_digest = BCrypt::Password.create(unencrypted_password, cost: cost)
end
end