From 843141a7a88da0fd9f8eb5402e3fe28faf33e162 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Thu, 18 Jun 2026 17:20:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95=E6=96=AD?= =?UTF-8?q?=E8=A8=80=EF=BC=9A=E9=80=82=E9=85=8D=E6=96=B0=20schema=20?= =?UTF-8?q?=E7=9A=84=E4=B8=9A=E5=8A=A1=E8=AF=AD=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SaveDeployment: 显式 Guid 避免同纳秒冲突,验证 2 个部署正确保存 - DeleteDetection: 用 CreateDetectionUnit 创建传感器,verifying PositionX - TargetDetected: 验证发射平台自带雷达可触发探测事件 --- .../ScenarioServiceTests.cs | 26 ++++++++----------- .../SimulationEngineTests.cs | 8 +++--- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs b/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs index ddff170..72a4177 100644 --- a/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs +++ b/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs @@ -207,21 +207,16 @@ namespace CounterDrone.Core.Tests public void SaveDeployment_SavesMultiple() { var scenario = _service.CreateScenario("Equip Test", ""); - var equips = new List - { - TestData.CreateScenarioUnit(1000, 0, 50, 0, 3), - TestData.CreateScenarioUnit(0, 0, 50, 0, null), - }; + var unit1 = TestData.CreateScenarioUnit(1000, 0, 50, 0, 3); + var unit2 = TestData.CreateScenarioUnit(2000, 0, 50, 0, 5); + unit2.Id = Guid.NewGuid().ToString(); - _service.SaveDeployment(scenario.Id, equips); + _service.SaveDeployment(scenario.Id, new List { unit1, unit2 }); var detail = _service.GetScenarioDetail(scenario.Id); - Assert.NotEmpty(detail.Units); - - var platform = detail.Units.Find(e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform); - Assert.NotNull(platform); - Assert.Equal(1, platform.Quantity); - Assert.Equal(800.0, TestData.DefaultFuSpec.MuzzleVelocity); + Assert.Equal(2, detail!.Units.Count); + Assert.Contains(detail.Units, u => u.PositionX == 1000); + Assert.Contains(detail.Units, u => u.PositionX == 2000); } [Fact] @@ -476,15 +471,16 @@ namespace CounterDrone.Core.Tests public void DeleteDetection_RemovesOnlyOne() { var scenario = _service.CreateScenario("探测删除测试", ""); - _service.AddDetection(scenario.Id, TestData.CreateScenarioUnit(0, 0, 50, 0, null)); - var det2 = TestData.CreateScenarioUnit(0, 0, 50, 0, null); + var det1 = TestData.CreateDetectionUnit(3000, 0, 0); + var det2 = TestData.CreateDetectionUnit(5000, 0, 0); + _service.AddDetection(scenario.Id, det1); _service.AddDetection(scenario.Id, det2); _service.DeleteDetection(det2.Id); var detections = _service.GetDetections(scenario.Id); Assert.Single(detections); - Assert.Equal(5000.0, detections[0].PositionX); + Assert.Equal(3000.0, detections[0].PositionX); } [Fact] diff --git a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs index 2b400a8..deaffbe 100644 --- a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs +++ b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs @@ -219,17 +219,17 @@ namespace CounterDrone.Core.Tests } [Fact] - public void TargetDetected_NoDetectionEquipment_NoEvent() + public void TargetDetected_LaunchPlatformBuiltinRadar_FiresEvent() { - // 使用普通的 SetupScenario(无探测设备) + // 发射平台自带雷达(ground-light RadarRange=6000),应触发探测事件 SetupScenario(); _engine.Initialize(_scenarioId); - Assert.Empty(_engine.DetectionEntities); + Assert.NotEmpty(_engine.DetectionEntities); for (int i = 0; i < 200; i++) _engine.Tick(1f / 20f); var detected = _engine.Events.Where(e => e.Type == SimEventType.TargetDetected).ToList(); - Assert.Empty(detected); + Assert.NotEmpty(detected); } [Fact]