Интеграционный тест Griffon или скрипт, отображающий представление Griffon - PullRequest
0 голосов
/ 12 октября 2010

Когда я создаю плоские Java-компоненты Swing, такие как диалоговые окна и т. Д., Очень просто выполнить модульный тест для отображения диалогового окна.По сути, я могу просто создать экземпляр диалога и вызвать setIsVisible (true).Мне действительно трудно понять, как это сделать с помощью Griffon View.Я пытался сделать это с помощью интеграционных тестов, но, похоже, я не могу его получить.

Я попробовал несколько вещей, чтобы показать представление, но ничего не работает.Единственный способ, которым я могу получить экземпляр представления, это: AirplaneView view = helper.newInstance(app, griffonpractice.AirplaneView.class, "Airplane")

После этого я подумал, что могу сделать view.setIsVisible(true) or view.frame.setIsVisible(true), но не повезло.Я предполагаю, что я думаю об этом неправильно, должен быть довольно простой способ сделать это.Любая помощь приветствуется.Мой взгляд выглядит следующим образом: обратите внимание, что привязок нет, поэтому мне не нужно ничего высмеивать.

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

1 Ответ

0 голосов
/ 13 октября 2010

Вы пробовали использовать FEST?http://easytesting.org

Книга Griffon in Action содержит подробный пример тестирования приложения Griffon с использованием FEST, исходный код доступен по адресу http://code.google.com/p/griffoninaction/source/browse/trunk/chap09/dictionary

Вот краткий пример 3 тестов для простого приложения

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 = ""
        }
    }
}
...