Postagens

Mostrando postagens com o rótulo UnitTest

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS

Imagem
A automatização de testes é uma disciplina muito importante hoje em dia. Entre várias técnicas e ferramentas diferentes, uma das que podemos utilizar para termos um conjunto de testes funcionais que possam ser facilmente repetidos é o Selenium. O Selenium é uma ferramenta que permite que a execução de passos que uma pessoa faria em um browser web (Chrome, Edge, etc.) possa ser programada. Com isso, toda vez que for necessária a validação de uma nova versão de sistema ou correção, este grupo de testes pode ser rodado de forma automática. Ainda falando sobre a execução do Selenium, ele trabalha criando uma instância do respectivo browser e enviando comandos para ele. Dessa forma é feita a simulação de preenchimento de caixas de texto, cliques em botões, etc. Quando um teste automatizado com Selenium é rodado, pode-se ver todo o teste acontecendo. Entretanto, há um problema nesta abordagem. Caso a sessão do usuário que está executando os testes seja bloqueada, o Selenium não consegue...

"Novidades" no Visual Studio 11 Beta - Microsoft Fakes

Imagem
Olá, pessoal! Hoje vou falar de uma das "novidades" que vieram na versão beta do Visual Studio 11: Microsoft Fakes. O Fakes é um framework de geração de objetos dublês para testes, ou seja, ele serve para criar classes que possam substituir outras para facilitar a execução de testes de caixa branca. Testes de unidade devem verificar apenas o comportamento da classe que estão testando, e não de várias classes. Por exemplo, se para testar uma classe de negócio precisamos da sua classe de dados, para retornar algumas informações, então isso não é um teste de unidade... É mais fácil mostrar a utilidade do Fakes com um exemplo. Antes de tudo, você deve baixar a versão beta do Visual Studio 11 neste link  http://www.microsoft.com/visualstudio/11/en-us . Como exemplo, eu criei um projeto do tipo "Unit Test Project", para C#. Vou colocar o próprio código da classe de negócios que será testada neste projeto. Numa solução real, isso não poderia ser feito, mas com...

Testando métodos privados

Me deparei com uma thread interessante sobre unit test no StackOverflow (melhor site para postar dúvidas na minha opinião): A dúvida era como testar unitariamente métodos privados. Destaco duas respostas técnicas: utilizar o atributo InternalsVisibleToAttribute ( http://devlicio.us/blogs/derik_whittaker/archive/2007/04/09/internalsvisibleto-testing-internal-methods-in-net-2-0.aspx) , que faz com que tipos fiquem visíveis para unit tests, mas que acabam deixando "rastros" nos assemblies quando compilados mesmo em modo Release; utilizar AccessPrivateWrapper ( http://www.amazedsaint.com/2010/05/accessprivatewrapper-c-40-dynamic.html ), que encapsula o acesso a métodos privados através do dynamic do C# 4.0. Mas a melhor resposta, na minha opinião, não é nenhuma dessas e sim uma conceitual: métodos privados não deveriam ser alvo de testes unitários. Sugiro dar uma olhada no fórum: http://stackoverflow.com/questions/250692/how-do-you-unit-test-private-methods []'s