Gauge中执行钩子(Hook)

January 1, 2018 · 117 words · One minute

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


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


Suit Hook

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

    //在所有的Specification执行之前执行
    @BeforeSuite
    public void BeforeSuite() {
      // Code for before suite
    }

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

##Specification Hook

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

    //在每一个Specification执行之前执行
    @BeforeSpec
    public void BeforeSpec() {
      // Code for before spec
    }

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

##Scenario Hook

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

    //在每一个Scenario 执行之前执行
    @BeforeScenario
    public void BeforeScenario() {
      // Code for before scenario
    }

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

##Step Hook

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

    //在每一个Step执行之前执行
    @BeforeStep
    public void BeforeStep() {
      // Code for before step
    }

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

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