跳到主要内容

6.1 运行嵌入式服务器

要运行服务器,请使用 static void main 方法创建一个 Application 类,例如:

Micronaut Application 类

import io.micronaut.runtime.Micronaut;

public class Application {

public static void main(String[] args) {
Micronaut.run(Application.class);
}
}

要从单元测试运行应用程序,请使用 EmbeddedServer 接口:

Micronaut 测试用例

import io.micronaut.http.HttpRequest;
import io.micronaut.http.client.HttpClient;
import io.micronaut.http.client.annotation.Client;
import io.micronaut.runtime.server.EmbeddedServer;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import jakarta.inject.Inject;

import static org.junit.jupiter.api.Assertions.assertEquals;

@MicronautTest
public class HelloControllerSpec {

@Inject
EmbeddedServer server; // (1)

@Inject
@Client("/")
HttpClient client; // (2)

@Test
void testHelloWorldResponse() {
String response = client.toBlocking() // (3)
.retrieve(HttpRequest.GET("/hello"));
assertEquals("Hello World", response); // (4)
}
}
  1. EmbeddedServer 正在运行,Spock @AutoCleanup 注解可确保在规范完成后停止服务器。
  2. EmbeddedServer 接口提供在随机端口上运行的被测服务器的 URL。
  3. 测试使用 Micronaut HTTP 客户端进行调用
  4. retrieve 方法以 String 的形式返回控制器的响应
警告

如果没有明确的端口配置,端口将是 8080,除非应用程序是在端口随机的 test 环境下运行的。当应用程序上下文从测试类的上下文开始时,会自动添加测试环境。

英文链接