2009-08-26 1 views
1

На данный момент я играю с Грифоном. Все работает очень гладко, за исключением тестирования.Как эффективно тестировать приложение Griffon с помощью easyb?

Мне нравится протестировать отдельные методы контроллера без запуска всего приложения Griffon . Для этого мне кажется, что у меня есть , имитируя представление и модель, которые используются в контроллере. Из-за насмехается с объектами Expando, тесты для методов контроллера и действия с easyb становятся слишком длинными.

Вот простой пример:

MyProjectView.groovy

application(title: 'MyProject', 
    pack: true, 
    locationByPlatform: true, 
    iconImage: imageIcon('/griffon-icon-48x48.png').image, 
    iconImages: [imageIcon('/griffon-icon-48x48.png').image, 
      imageIcon('/griffon-icon-32x32.png').image, 
      imageIcon('/griffon-icon-16x16.png').image] 
) { 
tableLayout { 
tr { 
    td(align: "CENTER") { 
    textField(id: 'textfield', 
      text: "Hello") 
    } 
} 

tr { 
    td(align: "CENTER") { 
    button(text: "check", 
      actionPerformed: controller.checkForGreeting 
    ) 
    } 
    } 
} 
} 

MyProjectController.groovy

class MyProjectController { 
def model 
def view 

void mvcGroupInit(Map args) { 
} 

def checkForGreeting = { evt = null -> 
    return view.textfield.text == "Hello" 
} 

MyProjectModel.groovy

class MyProjectModel {} 

тест easyb: MyProje ctStory.story

scenario "Hello Check", { 
    def view 
    MyProjectController controller = new MyProjectController() 

given "A view with 'Hello' in the textfield", { 
    view = new Expando() 
    def textfield = new Expando() 
    textfield.text = "Hello" 
    view.textfield = textfield 
    controller.view = view 
} 
then "checkForGreeting should return true", { 
    controller.checkForGreeting().shouldBe(true) 
} 
} 

Есть ли более простой способ проверить методы контроллера гриффона? Возможно, на , используя лучшие решения для издевательств в представлении?

ответ

1

В Грифонах нет никакого смешного плагина/объектов, подобных тем, которые вы можете найти в Грайлесе. Контрольные контроллеры обычно выполняются в тестах интеграции (поэтому шаблон create-mvc помещает тест под тестирование/интеграцию).

Однако никаких смехотворных средств не может быть и речи о будущем выпуске.

 Смежные вопросы

  • Нет связанных вопросов^_^