2010-10-12 10 views
0

Lorsque je crée des composants d'avion java Swing comme des boîtes de dialogue, etc., il est très facile de faire un test unitaire pour afficher le dialogue. Fondamentalement, je peux simplement créer une instance de la boîte de dialogue et appeler setIsVisible (true). J'ai vraiment du mal à trouver comment le faire avec un griffon View. J'ai essayé de le faire avec des tests d'intégration mais je n'arrive pas à l'obtenir.Test d'intégration Griffon ou script affichant un griffon Visualiser

J'ai essayé quelques choses pour montrer la vue et rien ne semble fonctionner. La seule façon que je semble être en mesure d'obtenir une instance de la vue est: AirplaneView view = helper.newInstance(app, griffonpractice.AirplaneView.class, "Airplane")

Après cela, je pensais que je pourrais peut-être faire un view.setIsVisible(true) or view.frame.setIsVisible(true) mais pas de chance. J'imagine que je pense à cela de la mauvaise façon, il doit y avoir une façon assez simple de faire cela. Toute aide est appréciée. Ma vue ressemble à ce qui suit, notez qu'il n'y a pas de liaisons, donc je ne devrais pas avoir besoin de se moquer de quoi que ce soit.

package griffonpractice 
import javax.swing.JFrame 

JFrame frame = application(title: 'GriffonPractice', 
    size: [320,480], 
    pack: true, 
    location: [50,50], 
    locationByPlatform:true){ 
    borderLayout() 
    { 
     hbox(constraints: BL.NORTH) 
     { 
      label(text: "shane") 
      label(text: "Jack"); 
     } 
    } 
} 

Répondre

0

Avez-vous essayé d'utiliser FEST? http://easytesting.org

Le livre Griffon en action a un exemple détaillé sur le test d'une application Griffon utilisant FEST, le code source est disponible à http://code.google.com/p/griffoninaction/source/browse/trunk/chap09/dictionary

Voici un court exemple de 3 tests pour une application simple

package dictionary 

import org.fest.swing.fixture.* 
import griffon.fest.FestSwingTestCase 

class DictionaryTests extends FestSwingTestCase { 
    void testInitialState() { 
     window.button('search').requireDisabled() 
    } 

    void testWordIsFound() { 
     window.with { 
      textBox('word').enterText('griffon') 
      button('search').click() 
      textBox('result') 
       .requireText('griffon: Grails inspired desktop application development platform.') 
     } 
    } 

    void testWordIsNotFound() { 
     window.with { 
      textBox('word').enterText('spock') 
      button('search').click() 
      textBox('result') 
       .requireText("spock: Word doesn't exist in dictionary") 
     } 
    } 

    protected void onTearDown() { 
     app.models.dictionary.with { 
      word = "" 
      result = "" 
     } 
    } 
} 
+0

Merci pour votre contribution, je vais jeter un oeil à fest et vous faire savoir comment ça se passe. – GNSL