Hi all
I can't find information if @ClassRule is respected bu spock during execution.
I try to write some class rule which can do some @BeforeClass initializations, but I can't make spock to respect it.
I came up with this :
class SputnikWithParametersTest extends Specification {
@ClassRule
@Shared
public static ClassParameters<int[]> PARAMETERS = ClassParameters.withParameters([[2, 2], [-2, 2]])
static int a;
static int b;
@BeforeClass
void before() {
int[] parameter = PARAMETERS.getParameter()
println("Parameters : ${parameter}")
a = parameter[0]
b = parameter[1]
}
def 'some'() {
when:
int abs = Math.abs(a)
then:
abs == b
}
def 'second'() {
when:
int abs = Math.abs(a)
then:
abs == b
}
}
but spock didn't catch Class Rule.
When I change it to normal rule :
class SputnikWithParametersTest extends Specification {
@Rule
ClassParameters<int[]> PARAMETERS = ClassParameters.withParameters([[2, 2], [-2, 2]])
int a;
int b;
def 'some'() {
setup:
int[] parameter = PARAMETERS.getParameter()
println("Parameters : ${parameter}")
a = parameter[0]
b = parameter[1]
when:
int abs = Math.abs(a)
then:
abs == b
}
def 'second'() {
setup:
int[] parameter = PARAMETERS.getParameter()
println("Parameters : ${parameter}")
a = parameter[0]
b = parameter[1]
when:
int abs = Math.abs(a)
then:
abs == b
}
}
it started to process rule (so it support normal rules)
Have anyone successfully used Class Rules with Spock ?
Regards,
Grzesiek