Springboot Cucumber測試配置介紹詳解
目前Spring-boot成為了java開發(fā)的主流框架,Cucumber作為一款支持dsl的自動(dòng)化測試工具,很適合用戶編寫DSL優(yōu)化過的單元測試等測試用例。本文將講解如何在SpringBoot中配置Cucumber進(jìn)行自動(dòng)化測試。
目錄結(jié)構(gòu)如下:

gradle相關(guān)配置如下所示:
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代碼結(jié)構(gòu),我們不再具體講解。test文件夾中上邊為自帶的SpringBootTest測試框架,而demo中的內(nèi)容是Cucumber框架的具體配置。
1.首先我們需要配置基本的Cucumber框架CucumberTest.java:
@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources")
public class CucumberTest {
}
2.接下來,我們要配置有關(guān)Spring-boot的配置,因?yàn)槲覀兊臏y試框架也需要在springboot的運(yùn)行下完成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來調(diào)用service中的方法執(zhí)行,獲得測試結(jié)果。
4.最后,我們?cè)趓esources中填寫具體的黃瓜測試用例,并執(zhí)行。
Feature: test cucumber Scenario: system out print something Given Generate testCase for "COM-COM-F" Then finish
5.測試結(jié)果如圖所示

綠色代表測試通過
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java在OJ時(shí)運(yùn)行超時(shí)的問題解決方案
Java語言什么都好,就是在OJ的時(shí)候真的是太慢了,今天來講解一種讓Java運(yùn)行速度快速提高的方法,感興趣的朋友一起看看吧2023-11-11
Serializable接口的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了java中Serializable接口的作用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Java基礎(chǔ)字符編碼與內(nèi)存流詳細(xì)解讀
這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
淺談SpringBoot中的Bean初始化方法?@PostConstruct
這篇文章主要介紹了SpringBoot中的Bean初始化方法?@PostConstruct,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11

