Interface gráfica e TDD

5 respostas
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.

5 Respostas

el_loko

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.

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));
    }
gomesrod

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));
    }


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?

nayaracf

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.

gomesrod

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.

S

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.

Criado 27 de maio de 2011
Ultima resposta 28 de mai. de 2011
Respostas 5
Participantes 4