test(ai): BrainGraph 第1阶段收尾——flyweight 共享测试 + 全量绿

This commit is contained in:
2026-07-03 14:26:01 +08:00
parent d01df7b5f0
commit 747d39072e
2 changed files with 41 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
using NUnit.Framework;
using BaseGames.AI;
namespace BaseGames.Tests.EditMode.AI
{
public class AiScriptTests
{
sealed class SampleAi : AiScript
{
public int BuildCount;
protected override void Build(BrainBuilder b)
{
BuildCount++;
b.Entry("A");
b.State("A").To("B").When(c => c.Sensor.SeesPlayer(), "SeesPlayer");
b.State("B");
}
}
[Test]
public void GetOrBuildGraph_ReturnsSameSharedInstance()
{
var script = new SampleAi();
var g1 = script.GetOrBuildGraph();
var g2 = script.GetOrBuildGraph();
Assert.AreSame(g1, g2); // flyweight:同一引用
Assert.AreEqual(1, script.BuildCount); // 只构建一次
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9e6381340221cbb4c965e28d671c8a3c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: