测试用例上下文管理
相对前两者而言,测试用例上下文管理的逻辑稍微少点,用时序图表示如下:
前3步做了基本的初始化动作,不做说明。
第4步需要说明,我们使用Jbehave框架的时候,会继承Jbehave提供的Embedder类并且做了重写了candidateSteps()方法,所以第4步这里使用多态机制加载了我们定义的candidateSteps,代码很简单,位于Embedder类的runStoriesAsPaths()方法中,如下:
List
然后在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]