Im Moment spiele ich mit Griffon. Bis auf die Tests läuft alles reibungslos.Wie kann ich eine Griffon-Anwendung mit easyb effizient testen?
Ich möchte die separaten Controller-Methoden testen, ohne die gesamte Griffon-Anwendung zu starten. Um dies zu tun, scheint es mir, dass ich die Ansicht und das Modell, die in der Steuerung verwendet werden, verspotten. Wegen der Spott mit Expando-Objekten, die Tests für die Controller-Methoden und Aktionen mit easyb werden zu lang.
Hier ist ein einfaches Beispiel:
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 {}
der easyb Test: 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)
}
}
Gibt es eine einfachere Möglichkeit, Griffon Controller Methoden zu testen? Vielleicht durch mit einer besseren Lösung für die Aussicht verspotten?