Qual é o melhor padrão de acesso de banco de dados para a capacidade de teste?
-
01-07-2019 - |
Pergunta
Eu li sobre e se envolveu com algumas incluindo registro ativo, repositório, objetos de transferência de dados. Qual é o melhor?
Solução
Repository é provavelmente o melhor padrão para a capacidade de teste, já que permite a substituição de um repositório com um mock quando você precisa de teste. ActiveRecord amarra seus modelos para o banco de dados (às vezes conveniente, mas geralmente mais dificcult para teste).
Outras dicas
perguntas 'melhor' não são realmente válido. O mundo está cheio de combinação e variações. Você deve começar com a pergunta que você tem que responder: Que problema você está tentando resolver. Depois de responder que você olhar para as ferramentas que funcionam melhor com a questão.
Embora concorde perguntas "melhores" não são a maior forma (uma vez que eles são tão arbitrário), eles não são totalmente irrelevante qualquer um.
No mundo construído aqui em S. O. onde os desenvolvedores votação sobre o que é "melhor", porque não têm melhores perguntas? "Melhores perguntas" prompt de discussão e opiniões divergentes.
Por fim, quando alguém "googles" 'padrão de acesso de dados' eles devem vir a esta página e ver um infinidade de respostas, em seguida, certo?
Ela realmente depende de sua tarefa. Pelo menos você deve saber e entender todos os padrões de acesso de banco de dados para escolher um mais adequado para o problema atual.
Esta é uma pergunta boa, que deve provocar algum pensamento.
acesso ao banco muitas vezes não está sujeito a testes rigorosos - teste particularmente não automatizado, e eu certamente gostaria de aumentar a quantidade de testes no meu banco de dados.
Eu estou usando o framework de teste MbUnit correndo de dentro do Visual Studio para fazer alguns testes.
Nossos usos de aplicativos armazenados procedimentos, sempre que possível, e os testes que tenho escrito configurar o banco de dados para testes, chamar um procedimento armazenado, e verificar os resultados.
Para um conjunto de procedimentos armazenados relacionados, temos um arquivo C # com testes para esses procedimentos armazenados. (No entanto, a nossa cobertura é provavelmente cerca de 1% até agora!).
O Active Record é uma opção atraente por causa de Ruby embutido ênfase em testes automatizados. Se eu estivesse começando de novo, isso seria um ponto para o uso de registro ativo.