На данный момент я играю с Грифоном. Все работает очень гладко, за исключением тестирования.Как эффективно тестировать приложение 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)
}
}
Есть ли более простой способ проверить методы контроллера гриффона? Возможно, на , используя лучшие решения для издевательств в представлении?