O FIT é uma ferramenta de automação de testes criada por Ward Cunningham que permite a colaboração entre equipes para capturar, implementar e testar regras de negócio através de "fixtures" que conectam dados de teste ao código e executam os testes de forma automatizada.
2. O FIT é uma ferramenta de automação e colaboração criada por WardCuningham que permite que várias pessoas envolvidas no projeto trabalhem juntas para a captura, a implementação e teste das regras do software. O que é
3. O FIT é uma ponte entre a manifestação de um requisito baseando-se em Test-DrivenDevelopment. Finalidades
5. Uma “fixture” é uma classe que liga os dados de teste com o código que resolve os problemas de negócio (implementação). Com as fixtures, os dados de teste se tornam “executáveis” permitindo que as regras de negócio sejam validadas de maneira automatizada. Elementos Básicos (cont.)
6. Exemplo de fixture: DivisaoFixture, testando e direcionando o desenvolvimento packageprofit.test; importprofit.application.DivisaoFacade; importfit.ColumnFixture; publicclassDivisaoFixtureextendsColumnFixture { public Double dividendo; public Double divisor; privateDivisaoFacade facade = newDivisaoFacade(); public Double resultado() throws Exception { returnfacade.execute(dividendo, divisor); } } Elementos Básicos (cont.)
7. Elementos Básicos (cont.) Os dados para teste são colocados num documento HTML e geralmente em formato de tabela. O cabeçalho desta tabela indica a Fixture (uma classe) que será responsável por direcionar a construção e aplicar os teste.
9. Nos resultados de teste podemos ver que os resultados corretos foram pintados de verde pelo FIT. Já na última linha, ocorreu um erro devidamente destacado pelo FIT em amarelo. Os testes são direcionados pelas tabelas com os dados de teste que constam num diretório do projeto. Resultados do FIT (cont.)
10. A FITLibrary, uma extensão muito útil do FIT, possui uma implementação que lê todo um diretório(FolderRunner) e executa os testes. Outra extensão, o FITNesse, permite a entrada dos dados para teste num Wiki próprio. Isso permite uma colaboração até maior com a área de negócios, melhorando a colaboração entre clientes e desenvolvedores. Extensões e Fixtures
11. O FIT e sua principal extensão, o FITNesse, possuem inúmeros estilos de fixture diferentes. As principais são: ColumnFixture – utilizada para testar regras e cálculos. (vide exemplo anterior) RowFixture – Para testar listas de objetos. ActionFixture – Para testar sequências de ações. Extensões e Fixtures (cont.)
12. Antes de tudo é aconselhável criar um projeto separado para os testes do FIT. Nesse projeto estarão contidos os HTML que a área de negócio irá construir e fixture que os programadores irão desenvolver, portanto, devido ao tamanho e complexidade é necessário criar um novo projeto. Por default o teste do FIT é gerado na fase de “integration-test” do ciclo de vida de construção do Maven(Build Lifecycle). Automatizando o teste do FIT com Maven
13.
14.
15. É interessante configurar a tag “ignoreFailures” para true, a fim de que não seja interrompido a construção do projeto mesmo em caso de erro nos testes.Configuração do pom.xml (cont.)