完善测试用例

This commit is contained in:
孙小云 2025-12-18 20:42:48 +08:00
parent c7e636345f
commit f961c6eb4b
1 changed files with 82 additions and 0 deletions

View File

@ -182,6 +182,88 @@ public class BasicScenarioTest {
log.info(">>> 测试通过:状态回调超时,错误消息: {}", result.getErrorMessage());
}
/**
* 测试1: 简单成功场景
*/
@Test
@Order(5)
@DisplayName("测试1: 简单成功场景 状态第一次错误 第二次成功")
public void testSimpleSuccessTwo() throws ExecutionException, InterruptedException {
log.info(">>> 场景:指令被通过,远程命令成功,方法回调和状态回调都成功");
CompletableFuture<CommandResult> future =
machineCommandManager.executeCommand(TEST_SN, CommandType.TAKE_OFF, new HashMap<>());
scheduler.schedule(() -> {
try {
Thread.sleep(100);
String response = "{\"result\":\"success\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/response", response);
log.info(">>> 模拟发送方法回调: {}", response);
Thread.sleep(100);
response = "{\"status\":\"error\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/state", response);
log.info(">>> 模拟发送状态回调: {}", response);
Thread.sleep(100);
response = "{\"status\":\"completed\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/state", response);
log.info(">>> 模拟发送状态回调: {}", response);
} catch (InterruptedException e) {
e.printStackTrace();
}
}, 200, TimeUnit.MILLISECONDS);
CommandResult result = future.get();
assertTrue(result.isSuccess(), "指令应该执行成功");
log.info(">>> 测试通过:指令执行成功");
}
/**
* 测试1: 简单成功场景
*/
@Test
@Order(6)
@DisplayName("测试6: 简单失败场景 方法第一次失败 第二次成功")
public void testSimpleSuccessThree() throws ExecutionException, InterruptedException {
log.info(">>> 场景:指令被通过,远程命令成功,方法回调和状态回调都成功");
CompletableFuture<CommandResult> future =
machineCommandManager.executeCommand(TEST_SN, CommandType.TAKE_OFF, new HashMap<>());
scheduler.schedule(() -> {
try {
Thread.sleep(100);
String response = "{\"result\":\"error\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/response", response);
log.info(">>> 模拟发送方法回调: {}", response);
Thread.sleep(100);
response = "{\"result\":\"success\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/response", response);
log.info(">>> 模拟发送方法回调: {}", response);
Thread.sleep(100);
response = "{\"status\":\"completed\"}";
mqttCallbackRegistry.handleMessage("test/" + TEST_SN + "/state", response);
log.info(">>> 模拟发送状态回调: {}", response);
} catch (InterruptedException e) {
e.printStackTrace();
}
}, 200, TimeUnit.MILLISECONDS);
CommandResult result = future.get();
assertFalse(result.isSuccess(), "指令应该失败");
log.info(">>> 测试通过:指令执行失败");
}
@AfterAll
public static void cleanupAll() {
log.info("=== 基础场景测试完成 ===");