Springboot Cucumber測試配置介紹詳解
目前Spring-boot成為了java開發(fā)的主流框架,Cucumber作為一款支持dsl的自動化測試工具,很適合用戶編寫DSL優(yōu)化過的單元測試等測試用例。本文將講解如何在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
@SpringBootTest
public 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中的方法執(zhí)行,獲得測試結果。
4.最后,我們在resources中填寫具體的黃瓜測試用例,并執(zhí)行。
Feature: test cucumber Scenario: system out print something Given Generate testCase for "COM-COM-F" Then finish
5.測試結果如圖所示

綠色代表測試通過
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Serializable接口的作用_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了java中Serializable接口的作用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
淺談SpringBoot中的Bean初始化方法?@PostConstruct
這篇文章主要介紹了SpringBoot中的Bean初始化方法?@PostConstruct,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

