Olá pessoal, gostaria de saber como fazer interface gráfica para um sistema desenvolvido com a metodologia TDD.
Se alguém tiver alguma referência, ou exemplo por favor disponibilize.
Vlw.
[quote=nayaracf]Olá pessoal, gostaria de saber como fazer interface gráfica para um sistema desenvolvido com a metodologia TDD.
Se alguém tiver alguma referência, ou exemplo por favor disponibilize.
Vlw.
[/quote]
Bom dia, tudo bom?
A idéia do Test Driven Development é fazer primeiro o teste e a conclusão dos testes seria a sua própria implementação.
Isso quer dizer apenas que após o término dos testes você terá o seu método pronto para uso. Independente de ser uma
interface gráfica ou não existirão regras, e você deverá criar um método para testá-las. Exemplo da calculadora:
@Test
public void testaSoma() {
assertEquals("O valor total da soma de 2 + 2 é 4", 4, Calculadora.soma(2, 2));
}
[quote=el_loko]Independente de ser uma
interface gráfica ou não existirão regras, e você deverá criar um método para testá-las. Exemplo da calculadora:
@Test
public void testaSoma() {
assertEquals("O valor total da soma de 2 + 2 é 4", 4, Calculadora.soma(2, 2));
}
[/quote]
Você demonstrou um exemplo de teste para método que executa lógica, mas para interface de usuário a coisa é bem mais complexa.
TDD em interface de usuário é um assunto bastante discutido, e muitos afirmam que simplesmente não dá para fazer, ou não vale a pena.
Inclusive o Kent Beck, no livro “Test Driven Development”
O que pode ser feito é criar a modelagem das classes de maneira que se possa testar o máximo possível, separando tudo aquilo que efetivamente pode ser testado.
A propósito, como é o sistema, Web ou Desktop? Usa algum framework?
O sistema é Desktop, é um sisteminha simples de locadora. E o único framework que uso é o JUnit.
Procurei alguns exemplos com interface de usuário mas é bem difícil de encontrar.
Encontrei alguma coisa com MVC, mas não sei se esse seria o caminho correto.
Sim, o MVC é fundamental. Se você ainda não está utilizando estude-o com bastante carinho.
Veja bem: a parte da interface gráfica em si (ou seja, o código que utiliza Swing) talvez não possa ter testes automatizados, mas não quer dizer que o seu sistema (aplicativo como um todo) não tenha.
Tudo que não é Swing (regras de negócio, acesso a dados, utilitários, etc) pode - e deve - ter testes unitários, e consequentemente pode ser desenvolvido através do TDD.
A aplicação do MVC ajudará nessa separação.
De fato testes de interface gráfica são um tanto mais complexos que os testes da lógica da aplicação. Isso se deve, em partes, ao fato de elas serem orientadas a eventos, dentre outras características. Mas existem algumas ferramentas para auxiliar nisso. Já ouvi falar em uma chamada Jemmy e outra Abbot, mas nunca usei.
Boa sorte.