HelloWood

Gauge中执行钩子(Hook)

2018-01-01

本文所有内容均参考自Gauge官方文档


钩子可以理解为Java中的AOP(Aspect Oriented Programming),把SpecificationScenario当做一个切面,在执行之前和执行之后做一些操作


Suit Hook

作用于所有的Specification,在Specification执行之前或执行之后执行

1
2
3
4
5
6
7
8
9
10
11
//在所有的Specification执行之前执行
@BeforeSuite
public void BeforeSuite() {
// Code for before suite
}

//在所有的Specification执行之后执行
@AfterSuite
public void AfterSuite() {
// Code for after suite
}

##Specification Hook

作用于Specification,可以在某个Specification执行之前或执行之后执行

1
2
3
4
5
6
7
8
9
10
11
//在每一个Specification执行之前执行
@BeforeSpec
public void BeforeSpec() {
// Code for before spec
}

//在每一个Specification执行之后执行
@AfterSpec
public void AfterSpec() {
// Code for after spec
}

##Scenario Hook

作用于Scenario ,可以在某个Scenario 执行之前或执行之后执行

1
2
3
4
5
6
7
8
9
10
11
//在每一个Scenario 执行之前执行
@BeforeScenario
public void BeforeScenario() {
// Code for before scenario
}

//在每一个Scenario 执行之后执行
@AfterScenario
public void AfterScenario() {
// Code for after scenario
}

##Step Hook

作用于Step,可以在某个Step执行之前或执行之后执行

1
2
3
4
5
6
7
8
9
10
11
//在每一个Step执行之前执行
@BeforeStep
public void BeforeStep() {
// Code for before step
}

//在每一个Step执行之后执行
@AfterStep
public void AfterStep() {
// Code for after step
}

Gauge默认会在Scenario执行之后清除缓存,所以会在下个Scenario执行之前创建新的对象,该功能可以在配置中设置清除缓存的等级