It looks like Geb development has come a long way, so I'm trying to keep my codebase current, and I've tried a few times to run my tests with geb 4.1 instead of 3.4.1 -- baby steps on the way to 5.1. So far, it won't even compile, and I need some help.
The first problem I have is that I have several specs, both abstract and concrete, which try to override the `reportFailure` method, which no longer compiles. I know that I'm supposed to use testManager, but it's not quite obvious how to do it; there's very little documentation about it.
First of all, I have a main abstract class that also overrides reportFailure(), because those tests all have two browser windows open, and I want to make sure to screenshot both of them.
But also, sometimes I override reportFailure in a concrete test class, so that I can get screenshots of dialog boxes, and close them. That method also calls super.reportFailure(), meaning both of my custom methods will run.
So, given a test class that overrides reportFailure(), how do I move that method into a test manager object that the class can use? and will it support the kind of inheritance I had before?
Example of the kind of thing my method will contain: calling the main report function, doing stuff with page content, and calling the superclass method which might also be an override:
@Override
void reportFailure() {
if( page instanceOf DesignerPage ) {
if(preview.displayed) {
report "preview"
preview.close()
}
}
super.reportFailure()
}