From 70a993573f5b06471a4defe54ff96f305a45f6db Mon Sep 17 00:00:00 2001 From: YHH <359807859@qq.com> Date: Tue, 2 Sep 2025 18:04:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dci=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/tests/Core.test.ts | 33 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/packages/core/tests/Core.test.ts b/packages/core/tests/Core.test.ts index b0f1b23b..42216c17 100644 --- a/packages/core/tests/Core.test.ts +++ b/packages/core/tests/Core.test.ts @@ -4,6 +4,7 @@ import { Entity } from '../src/ECS/Entity'; import { Component } from '../src/ECS/Component'; import { GlobalManager } from '../src/Utils/GlobalManager'; import { ITimer } from '../src/Utils/Timers/ITimer'; +import { WorldManager } from '../src/ECS/WorldManager'; // 测试组件 class TestComponent extends Component { @@ -65,6 +66,9 @@ describe('Core - 核心管理系统测试', () => { // 清除之前的实例 (Core as any)._instance = null; + // 重置WorldManager全局状态 + WorldManager.reset(); + // 模拟console.warn以避免测试输出 originalConsoleWarn = console.warn; console.warn = jest.fn(); @@ -76,6 +80,9 @@ describe('Core - 核心管理系统测试', () => { // 清理Core实例 (Core as any)._instance = null; + + // 重置WorldManager全局状态 + WorldManager.reset(); }); describe('实例创建和管理', () => { @@ -131,7 +138,7 @@ describe('Core - 核心管理系统测试', () => { }); test('应该能够设置场景', () => { - Core.scene = testScene; + Core.setScene(testScene); expect(Core.scene).toBe(testScene); expect(testScene.beginCalled).toBe(true); @@ -150,11 +157,11 @@ describe('Core - 核心管理系统测试', () => { const secondScene = new TestScene(); // 设置第一个场景 - Core.scene = firstScene; + Core.setScene(firstScene); expect(firstScene.beginCalled).toBe(true); // 设置第二个场景(应该在下一帧切换) - Core.scene = secondScene; + Core.setScene(secondScene); // 模拟更新循环触发场景切换 Core.update(0.016); @@ -165,6 +172,8 @@ describe('Core - 核心管理系统测试', () => { }); test('获取场景在未设置时应该返回null', () => { + // 创建全新的Core实例,确保没有场景设置 + const core = Core.create(false); expect(Core.scene).toBeNull(); }); }); @@ -180,7 +189,7 @@ describe('Core - 核心管理系统测试', () => { globalManager = new TestGlobalManager(); Core.registerGlobalManager(globalManager); - Core.scene = testScene; + Core.setScene(testScene); }); test('应该能够执行更新循环', () => { @@ -417,7 +426,7 @@ describe('Core - 核心管理系统测试', () => { eventSystem: { emit: jest.fn() } }); - Core.scene = ecsScene; + Core.setScene(ecsScene); expect(Core.ecsAPI).toBeDefined(); }); @@ -431,7 +440,7 @@ describe('Core - 核心管理系统测试', () => { update: () => {} }; - Core.scene = plainScene as any; + Core.setScene(plainScene as any); expect(Core.ecsAPI).toBeNull(); }); @@ -454,7 +463,7 @@ describe('Core - 核心管理系统测试', () => { test('更新循环应该包含性能监控', () => { const scene = new TestScene(); - Core.scene = scene; + Core.setScene(scene); const performanceMonitor = (core as any)._performanceMonitor; const startMonitoringSpy = jest.spyOn(performanceMonitor, 'startMonitoring'); @@ -469,12 +478,10 @@ describe('Core - 核心管理系统测试', () => { describe('错误处理', () => { test('设置null场景应该被忽略', () => { - Core.create(true); - - expect(() => { - Core.scene = null; - }).not.toThrow(); + const core = Core.create(false); + // Core的新架构中场景不能直接设置为null + // 默认情况下Core.scene应该为null(没有设置场景时) expect(Core.scene).toBeNull(); }); @@ -487,7 +494,7 @@ describe('Core - 核心管理系统测试', () => { throw new Error('Test error'); }; - Core.scene = errorScene; + Core.setScene(errorScene); // 由于Core目前不捕获场景异常,我们预期它会抛出异常 // 这是一个已知的行为,可以在未来版本中改进