BDD课题研究-Jbehave原理分析-测试用例上下文管理

发表于:2012-05-03来源:Taobao QA Team作者:wuhuanzheng点击数: 标签:测试用例
测试用例上下文管理 相对前两者而言,测试用例上下文管理的逻辑稍微少点,用时序图表示如下:

  测试用例上下文管理

  相对前两者而言,测试用例上下文管理的逻辑稍微少点,用时序图表示如下:

  前3步做了基本的初始化动作,不做说明。

  第4步需要说明,我们使用Jbehave框架的时候,会继承Jbehave提供的Embedder类并且做了重写了candidateSteps()方法,所以第4步这里使用多态机制加载了我们定义的candidateSteps,代码很简单,位于Embedder类的runStoriesAsPaths()方法中,如下:

  List candidateSteps = candidateSteps();

  然后在StoryRunner中调用StepCollector类的collectScenarioSteps()方法,代码如下:

  这里完成了接下来的全部工作,最终返回steps给runStepsWhileKeepingState()方法用于运行。

  需要注意的是参数,candidateSteps中加载着我们别写的steps, scenario是*.story文件中的一个用例, scenarioParameters是用例的参数,所以collectScenarioSteps()方法所做的工作就是将scenario和相应的candidateSteps联系起来,并装配好参数。

  我们看collectScenarioSteps()方法片段:

  很好理解,两个嵌套的for循环遍历scenario和candidateSteps,最里层则是做比较判断,建立相应的step。

  我们看真正建立step的createMatchedStep()方法,核心片段如下:

  返回一个Step类实例,并且Step类的完整定义也可以看的到,我们看到了用于执行step的perform()方法。然后将此Step类实例一直返回到StoryRunner用于执行,执行部分在讲Jbehave执行流程时介绍过,此不赘述。

  至此,Jbehave框架测试用例上下文管理的介绍告一段落。

  VN:F [1.9.10_1130]

原文转自:http://www.ltesting.net