使用Forge,WildFly Swarm和Arquillian开发微服务

在本文中,我们将看到如何使用WildFly SwarmForge开发微服务,以及如何使用ArquillianRest 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命令:

> 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 {

  @ArquillianResource
  private URL url;

  @Test
  public 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值