Files
FlyShotHost/tests/Flyshot.Server.IntegrationTests/HealthEndpointTests.cs
yunxiao.zhu 4eeaa3fef3 feat: 初始化飞拍替换方案仓库骨架
* 建立 .NET 8 解决方案及分层项目结构
* 添加 Flyshot.Core.Domain 领域模型(机器人、轨迹、运动学)
* 添加 Flyshot.Core.Planning 规划层(ICSP、CubicSpline、采样器)
* 添加 Flyshot.Core.Triggering 触发时序与 IO 时间轴
* 添加 Flyshot.Core.Config 配置兼容与 .robot 解析
* 添加 Flyshot.Server.Host 最小宿主及 /healthz 端点
* 补充单元测试与集成测试项目
* 添加 CLAUDE.md、AGENTS.md、README.md 项目规范
2026-04-23 17:35:37 +08:00

28 lines
935 B
C#

using System.Net;
using System.Text.Json;
using Microsoft.AspNetCore.Mvc.Testing;
namespace Flyshot.Server.IntegrationTests;
public sealed class FlyshotServerFactory : WebApplicationFactory<Program>;
public sealed class HealthEndpointTests(FlyshotServerFactory factory) : IClassFixture<FlyshotServerFactory>
{
[Fact]
public async Task GetHealthz_ReturnsOkPayload()
{
using var client = factory.CreateClient();
using var response = await client.GetAsync("/healthz");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
await using var responseStream = await response.Content.ReadAsStreamAsync();
using var jsonDocument = await JsonDocument.ParseAsync(responseStream);
var root = jsonDocument.RootElement;
Assert.Equal("ok", root.GetProperty("status").GetString());
Assert.Equal("flyshot-server-host", root.GetProperty("service").GetString());
}
}