From 084354fa6c4efc5f0df6d38f343c250da77f4940 Mon Sep 17 00:00:00 2001 From: Joywayer Date: Wed, 29 Jul 2026 11:29:47 +0800 Subject: [PATCH] =?UTF-8?q?test(enemy):=20AbilityRef=20=E8=A1=A5=E6=B5=8B?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E5=B7=B2=E6=8C=82=E4=BD=86=20abilityId=20?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E7=9A=84=E8=AF=AF=E9=85=8D=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Tests/EditMode/AI/AbilityRefTests.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Assets/Tests/EditMode/AI/AbilityRefTests.cs b/Assets/Tests/EditMode/AI/AbilityRefTests.cs index 89d82380..190de45d 100644 --- a/Assets/Tests/EditMode/AI/AbilityRefTests.cs +++ b/Assets/Tests/EditMode/AI/AbilityRefTests.cs @@ -42,5 +42,18 @@ namespace BaseGames.Tests.EditMode.AI Assert.IsTrue(r.HasConflict); // 供校验器报警告 Object.DestroyImmediate(so); } + + [Test] + public void AssetWithEmptyId_IsEmpty() + { + // 资产挂了但其 abilityId 没填——校验器要能抓到的误配路径, + // 此处钉住契约:IsEmpty 为真、Id 为空,不因"挂了资产"就当作已配置。 + var so = ScriptableObject.CreateInstance(); + so.abilityId = ""; + AbilityRef r = so; + Assert.IsTrue(r.IsEmpty); + Assert.IsEmpty(r.Id); + Object.DestroyImmediate(so); + } } }