forge开发
在这篇文章中,我们将看到如何使用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已启动,并且可以键入命令了:
之后,您需要安装wildfly-swarm插件 。 为此,只需在Forge shell上键入next命令:
> addon-install-from-git --url https://github.com/forge/wildfly-swarm-addon
然后将下载并安装最新的插件。 完成此设置步骤后,您可以通过调用以下命令开始创建微服务:
> 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开发