使用Spring Boot REST API進行測試驅動開發
Maven外掛rest-assured 是Java DSL測試REST服務,這個外掛需要groovy-all來執行測試。
我們將新增maven-failsafe-plugin外掛來執行整合測試:
測試類程式碼如下:
@RunWith(SpringJUnit4ClassRunner.class)支援載入Spring應用程式上下文。
@ContextConfiguration 定義類級後設資料,用於確定如何為整合測試載入和配置ApplicationContext。
@TestPropertySource 用於配置屬性檔案的位置。
@SpringBootTest 告訴Spring Boot去尋找一個主配置類(例如,一個帶有@SpringBootApplication的類)並使用它來啟動Spring應用程式上下文。
由於我們尚未定義REST端點,因此我們可以使用該mvn verify 命令執行上述測試 以檢視測試失敗。
讓我們透過引入REST控制器來修復我們的測試:
在上面的類中,我們有一個REST端點,它接受“data”作為輸入,並在響應體中返回一個新的“Response”例項。
讓我們mvn verify 再次執行命令。它現在應該成功執行測試。
我們將新增maven-failsafe-plugin外掛來執行整合測試:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <id>integration-test</id> <goals> <goal>integration-test</goal> </goals> </execution> <execution> <id>verify</id> <phase>verify</phase> <goals> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>pre-integration-test</id> <goals> <goal>start</goal> </goals> </execution> <execution> <id>post-integration-test</id> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <p class="indent"> |
測試類程式碼如下:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = Application.class) @TestPropertySource(value={"classpath:application.properties"}) @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) public class SpringRestControllerTest { @Value("${server.port}") int port; @Test public void getDataTest() { get("/api/tdd/responseData").then().assertThat().body("data", equalTo("responseData")); } @Before public void setBaseUri () { RestAssured.port = port; RestAssured.baseURI = "http://localhost"; // replace as appropriate } } <p class="indent"> |
@RunWith(SpringJUnit4ClassRunner.class)支援載入Spring應用程式上下文。
@ContextConfiguration 定義類級後設資料,用於確定如何為整合測試載入和配置ApplicationContext。
@TestPropertySource 用於配置屬性檔案的位置。
@SpringBootTest 告訴Spring Boot去尋找一個主配置類(例如,一個帶有@SpringBootApplication的類)並使用它來啟動Spring應用程式上下文。
由於我們尚未定義REST端點,因此我們可以使用該mvn verify 命令執行上述測試 以檢視測試失敗。
讓我們透過引入REST控制器來修復我們的測試:
@RestController public class SpringRestController { @RequestMapping(path = "/api/tdd/{data}", method= RequestMethod.GET) public Response getData(@PathVariable("data") String data) { return new Response(data); } //inner class class Response { private String data; public Response(String data) { this.data = data; } public String getData() { return data; } } } <p class="indent"> |
在上面的類中,我們有一個REST端點,它接受“data”作為輸入,並在響應體中返回一個新的“Response”例項。
讓我們mvn verify 再次執行命令。它現在應該成功執行測試。
相關文章
- 使用 TDD 測試驅動開發來構建 Laravel REST APILaravelRESTAPI
- 使用 Spring Boot 和 @SpringBootTest 進行測試Spring Boot
- 使用 Spring Boot 進行單元測試Spring Boot
- 使用JBang構建Spring Boot Rest API教程Spring BootRESTAPI
- 使用Spring Boot和Swagger進行API優先開發 - reflectoring.ioSpring BootSwaggerAPI
- Swift 進階開發指南:如何使用 Quick、Nimble 執行測試驅動開發(TDD)SwiftUI
- 使用 Kotlin + Spring Boot 進行後端開發KotlinSpring Boot後端
- 開發者測試-採用精準測試工具對Spring Boot應用進行測試Spring Boot
- 使用PostMan進行API測試PostmanAPI
- 使用 HTTPie 進行 API 測試HTTPAPI
- 【星雲測試】開發者測試-採用精準測試工具對Spring Boot應用進行測試Spring Boot
- 測試開發專題:spring-boot如何使用JPA進行雙向一對多配置Springboot
- 如何使用Spring Boot,Spring Data和H2 DB實現REST APISpring BootRESTAPI
- 測試開發專題:如何在spring-boot中進行引數校驗Springboot
- 談“測試驅動的開發”
- 使用SAP API portal進行SAP SuccessFactors的API測試API
- 使用Spring Boot、Kotlin和OpenFeign實現型別安全API測試Spring BootKotlin型別API
- 使用Kotlin (Spring Boot) + MockMVC + DatabaseRider輕鬆實現API整合測試KotlinSpring BootMockMVCDatabaseIDEAPI
- Laravel 測試驅動開發 -- 正向單元測試Laravel
- Spring Boot乾貨系列:(十二)Spring Boot使用單元測試Spring Boot
- Gradle進階:1: 結合spring boot進行web開發GradleSpring BootWeb
- TDD(測試驅動開發)死了嗎?
- 什麼是測試驅動開發
- 使用Spring Boot的消費者驅動合同Spring Boot
- 使用go語言開發自動化API測試工具GoAPI
- Django REST framework API 指南(26):測試DjangoRESTFrameworkAPI
- 測試驅動開發(TDD)例項演示
- 測試開發之單元測試-禪道結合ZTF驅動單元測試執行
- 使用API進行區塊鏈開發API區塊鏈
- 使用jMeter對基於SAP ID service進行Authentication的Restful API進行併發測試JMeterRESTAPI
- 使用Spring Boot在請求正文中上傳多個檔案,並使用Postman進行測試Spring BootPostman
- Spring Boot使用JWT進行token驗證Spring BootJWT
- 使用 PostMan 進行自動化測試Postman
- 使用PostMan進行自動化測試Postman
- 【Spring註解驅動開發】聊聊Spring註解驅動開發那些事兒!Spring
- Spring Boot(十二):Spring Boot 如何測試打包部署Spring Boot
- Python 實現行為驅動開發 (BDD) 自動化測試詳解Python
- Rest Assured+TestNg實現資料驅動的介面測試REST