測試用例上下文管理
相對前兩者而言,測試用例上下文管理的邏輯稍微少點,用時序圖表示如下:
前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]