Como é o caso quando um aplicativo ruby é executado em um contêiner da web multi-processo (phusion passageiro, por exemplo), durante a execução do teste rspec, as classes podem ser recarregadas – o que significa que quaisquer variáveis de nível de classe que são definidas não podem ser contadas nos testes mesmo dentro do mesmo bloco de descrição.
Temos algumas classes que atuam como empacotadores de API para serviços externos que gostamos de desligar por padrão em nosso ambiente de teste e ativar por padrão em produção – inicialmente usamos variáveis de classe para elas, mas descobrimos que o estado estava ficando redefinir em execuções.
Correção: mova os estados iniciais para config / application.rb e config / environment / * e use-os para inicializar as definições de cattr_accessor no topo das classes.