目前Spring-boot成為了java開發的主流框架,Cucumber作為一款支持dsl的自動化測試工具,很適合用戶編寫DSL優化過的單元測試等測試用例。本文將講解如何在SpringBoot中配置Cucumber進行自動化測試。
目錄結構如下:
gradle相關配置如下所示:
testCompile('org.springframework.boot:spring-boot-starter-test', "info.cukes:cucumber-jvm:1.1.8", "info.cukes:cucumber-core:1.1.8", "info.cukes:cucumber-java:1.1.8", "info.cukes:cucumber-junit:1.1.8", "info.cukes:cucumber-spring:1.1.8", 'commons-io:commons-io:2.4')src中為常見的spring代碼結構,我們不再具體講解。 test文件夾中上邊為自帶的SpringBootTest測試框架,而demo中的內容是Cucumber框架的具體配置。
1.首先我們需要配置基本的Cucumber框架CucumberTest.java:
@RunWith(Cucumber.class)@CucumberOptions(features = "src/test/resources")public class CucumberTest {}2.接下來,我們要配置有關Spring-boot的配置,因為我們的測試框架也需要在springboot的運行下完成AbstractDefs.java:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = TestSpringMongoApplication.class)@WebAppConfiguration@SpringBootTestpublic class AbstractDefs{}3.然後,我們便開始寫屬於我們的DSL解析語法,可具體的測試流程TestSteps.java:
import com.tiandi.service.FaultInjectionInfoService;import cucumber.api.java.en.And;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;import org.springframework.beans.factory.annotation.Autowired;public class TestSteps extends AbstractDefs { @Autowired private FaultInjectionInfoService faultInjectionInfoService; private String faultNodeId; @Given("^Generate testCase for /"([^/"]*)/"$") public void generateTestCase(String id) { faultNodeId = id; } @Then("^finish$") public void finish() { faultInjectionInfoService.generateTestCase(faultNodeId); }}//在這裡,我們通過Autowired注入了spring中的service,並編寫用戶自定義的DSL來調用service中的方法執行,獲得測試結果。4.最後,我們在resources中填寫具體的黃瓜測試用例,並執行。
Feature: test cucumber Scenario: system out print something Given Generate testCase for "COM-COM-F" Then finish
5.測試結果如圖所示
綠色代表測試通過
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。