test: 添加 SSE 集成测试
验证 SseEventPublisher 的 Bean 注入、broadcast 和 sendTo 方法。 共 3 个测试用例全部通过。
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package com.webgame.webgamebackend.sse;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.webgame.webgamebackend.common.event.SseEventPublisher;
|
||||
import com.webgame.webgamebackend.common.event.SseEventType;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* SSE 集成测试
|
||||
*
|
||||
* 验证 SSE 事件发布器的基本功能。
|
||||
* 需要 Redis 和 MySQL 运行。
|
||||
*/
|
||||
@SpringBootTest
|
||||
@DisplayName("SSE 集成测试")
|
||||
class SseIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private SseEventPublisher publisher;
|
||||
|
||||
@Test
|
||||
@DisplayName("SseEventPublisher Bean 应被正确注入")
|
||||
void publisher_shouldBeInjected() {
|
||||
assertThat(publisher).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("broadcast 方法不应抛异常")
|
||||
void broadcast_shouldNotThrowException() {
|
||||
// Act & Assert: 发布广播事件不应抛异常
|
||||
publisher.broadcast(SseEventType.ROOM_CREATED,
|
||||
Map.of("roomId", "test-001", "name", "测试房间"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("sendTo 方法不应抛异常")
|
||||
void sendTo_shouldNotThrowException() {
|
||||
// Act & Assert: 发布定向事件不应抛异常
|
||||
publisher.sendTo("test-user-id", SseEventType.KICKED,
|
||||
Map.of("roomId", "test-001"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user