使用Forge,WildFly Swarm和Arquillian开发微服务
在本文中,我們將看到如何使用WildFly Swarm和Forge開發微服務,以及如何使用Arquillian和Rest Assured對其進行測試。
WildFly Swarm提供了一種創新的方法來打包和運行Java EE應用程序,方法是將它們與足夠的服務器運行時一起打包以“ java -jar”您的應用程序。
JBoss Forge是一個軟件開發工具,可擴展您的Java IDE,并提供用于不同技術和解決方案的向導和擴展(附加組件)。
Arquillian是一個簡化Java中間件集成測試的平臺。 它處理了容器管理,部署和框架初始化的所有工作,因此您可以專注于編寫測試(實際測試)的任務。
REST Assured將動態語言(例如Ruby和Groovy)中的REST服務的測試和驗證的簡便性帶入了Java域。
http://downloads.jboss.org/forge/releases/3.4.0.Final/forge-distribution-3.4.0.Final-offline.zip或導航至http://forge.jboss.org/download并下載Eclipse,Netbeans或IntelliJ的插件。 對于此示例,我將使用CLI之一。
安裝Forge并在PATH環境變量中提供它之后,就可以開始使用它了。
首先,轉到要存儲項目的目錄并運行forge。 幾秒鐘后,您將看到Forge已啟動,并且可以鍵入命令了:
之后,您需要安裝wildfly-swarm插件 。 為此,只需在Forge shell上鍵入next命令:
然后將下載并安裝最新的插件。 完成此設置步驟后,您可以通過調用以下命令開始創建微服務:
> project-new --top-level-package org.superbiz --named foo --type wildfly-swarm此命令創建一個名為foo的新項目,其中準備了滿足所有wildfly swarm要求的pom.xml 。 下一步是添加野生群片段。 片段是一種定義您希望在運行時能夠使用的模塊的方法。
> wildfly-swarm-add-fraction --fractions microprofile在這種情況下,添加微輪廓部分。 這意味著在運行時CDI + JSON-P + JAXRS將可用.Addon還創建了一個JAX-RS端點作為示例,您可以通過運行以下兩個命令來檢查它:
> cd src/main/java/org/superbiz/rest/HelloWorldEndpoint.java > ls然后返回項目的根目錄,讓我們調用為微服務創建Arquilian測試的命令
> wildfly-swarm-new-test --target-package org.superbiz --named HelloWorldEndpointTest --as-client在這種情況下,該測試稱為HelloWorldEndpointTest,并且測試將以Arquillian as-client模式運行(這意味著該測試未部署在容器內,將在本地運行時運行)。 您可以使用以下兩個命令檢查生成的代碼:
> cd src/test/java/org/superbiz > cat HelloWorldEndpointTest.java請注意,該測試尚未驗證任何內容,但是由于我們使用的是as-client模式,因此該測試會在啟動應用程序的位置注入URL。 讓我們使用REST-assured添加一些檢查。返回項目的根目錄并通過調用next命令添加REST-assured依賴項:
> project-add-dependencies io.rest-assured:rest-assured:3.0.1:test > cat pom.xml最后,您可以在空測試中使用REST保證的方法來驗證您的微服務端點是否有效地返回“來自WildFly Swam的問候!”。 。
package org.superbiz;import io.restassured.builder.RequestSpecBuilder; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.junit.Test; import org.junit.runner.RunWith; import org.wildfly.swarm.arquillian.DefaultDeployment;import java.net.URISyntaxException; import java.net.URL;import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is;@RunWith(Arquillian.class) @DefaultDeployment(testable = false, type = DefaultDeployment.Type.WAR) public class HelloWorldEndpointTest {@ArquillianResourceprivate URL url;@Testpublic void should_start_service() throws URISyntaxException {RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();requestSpecBuilder.setBaseUri(url.toURI());given(requestSpecBuilder.build()).when().get("hello").then().assertThat().body(is("Hello from WildFly Swarm!"));} } 當您運行此測試時,幕后發生的事情是微服務在本地打包和部署。 當服務準備好接收傳入的請求時,測試將向/ hello發送GET請求,并斷言響應正文為“來自WildFly Swam的Hello!”。
您可以在https://youtu.be/9xb6GIZ1gjs看到運行
這是一個非常簡單的示例,而這正是本文的目的。 只需向您展示如何使用Forge并運行一些命令,即可啟動一個已開始運行其集成測試的項目。
翻譯自: https://www.javacodegeeks.com/2017/01/develop-microservice-forge-wildfly-swarm-arquillian.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用Forge,WildFly Swarm和Arquillian开发微服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 灵山县房产备案网(灵山县网上备案)
- 下一篇: 安卓注入工具(安卓注入)