Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Add cleaning_with method

Aberta
#425 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
42/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
ruby
Domínio
testing

Direção de pesquisa

Comece lendo as APIs existentes de cleaning e strategy referenciadas pela issue, especialmente Base e o ponto de entrada de DatabaseCleaner no nível do módulo. Adicione o comportamento de cleaning solicitado por teste sem alterar a strategy globalmente e, em seguida, verifique se ele funciona em todas as conexões configuradas, com testes focados para ambos os pontos de entrada.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hi,

I'm slowly transitioning my tests to use transaction based cleaning instead of truncation. To do this, I'm currently using an around method which will use the strategy I want only for that test;

around(:each) { |example| DatabaseCleaner.cleaning_with(:transaction, &example) }

This is my extension:

module DatabaseCleaner
  class Base
    def cleaning_with(*args, &block)
      create_strategy(*args).cleaning(&block)
    end
  end

  class << self
    def cleaning_with(*args, &inner_block)
      connections.reduce(inner_block) do |curr_block, connection|
        proc { connection.cleaning_with(*args, &curr_block) }
      end.call
    end
  end
end

Would you consider adding this to the project itself? Btw, I realise doing this introduces some code repetition, I haven't yet looked at that because I didn't want to touch the original source code yet ;-)

Linguagem predominante
Ruby
Estrelas
3k
Forks
485
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de DatabaseCleaner/database_cleaner

Todas as issues de DatabaseCleaner/database_cleaner

Issues semelhantes

Mais issues de Ruby

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.