Pergunta

Eu estou apenas começando a avaliar zombando de quadros para a minha equipa e estou querendo saber se alguém tem alguma ponteiros para documentação de referência ou experiência que você pode compartilhar sobre o custo de escárnio ao fazer testes de desempenho.

Links? Experiência pessoal? Detalhes apreciado.

Foi útil?

Solução 4

Eu tenho vindo a testar zombando de estruturas (MOQ e TypeMock especificamente). TypeMock é muito mais poderoso e flexível, mas porque ele se conecta ao quadro como um profiler ele realmente ter um impacto signficant no desempenho.

A minha conclusão é que TypeMock é uma excelente ferramenta para cenários de teste sem carga. Moq é menos flexível ... mas muito mais leve peso e não tem um amplo efeito no desempenho geral. Com Moq você tem que configurar suas aplicações especificamente para ser capaz de zombar as dependências externas (um exercício em bom design de qualquer maneira), mas provou ser um melhor ajuste muito para os meus cenários relacionados carga.

Infelizmente eu não gravar números reais em meus testes sobre Moq vs TypeMock mas o benefício de Moq desempenho é signficant na minha experiência.

Outras dicas

IIRC TypeMock usa a API Profiler, que geralmente não adicionar um pouco de sobrecarga, mas ainda deve ser mais rápido do que executar a aplicação através de um profiler.

NCover também usa a API Profiler, e parece ser bastante rápido.

Aaron Jensen criou um projeto de teste e fiz alguns testes de desempenho. http://codebetter.com/ blogs / aaron.jensen / Arquivo / 2008/05/08 / mock-quadro-benchmarks.aspx

Eu prefiro escolher com base em API e capacidades, porém, mas o desempenho pode ser um problema com TDD e executar seus testes de cargas de vezes.

Temos vindo a utilizar TypeMock por um par de anos e na minha experiência não há nenhuma sobrecarga significativa no desempenho (eu tenho certeza que é uma sobrecarga, não é apenas um grande problema).

No entanto, devido à natureza de como TypeMock trabalha há várias coisas a considerar. Como TypeMock funciona basicamente através da injeção de código em tempo real os erros às vezes pode ser muito exótica. erros de reporte pode assim tornar-se um pouco de uma tarefa assustadora. Esteja preparado para cavar IL.

A minha experiência é que ele pode ser difícil de explicar o "desenvolvedor médio" como TypeMock funciona. Ele rapidamente se torna complicada e, apesar de suas ferramentas de rastreamento tornam a solução de problemas factível ainda deixa um pouco de uma tarefa de apoio.

Além disso, como TypeMock vai deixar você nada simulada (exceto para mscorlib), você realmente não precisa adicionar os níveis necessários de engano ao seu código. Esta é uma característica e TypeMock não é realmente em falta aqui. Ainda assim, eu vi um monte de desenvolvedores que tentam resolver os seus problemas por zombando todo o lugar, em vez de se dissociar o código. Isso não melhora a qualidade geral do código IMO.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top