package com.xly.service; import org.junit.jupiter.api.Test; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; /** skill 文件加载:5 个技能齐全、首行为用途、正文非空、模糊名可命中。 */ class SkillServiceTest { private final SkillService skills = new SkillService(); @Test void allFiveSkillsLoadFromClasspath() { List all = skills.all(); assertEquals(5, all.size()); for (String name : new String[]{"查询数据", "新建报价", "新建单据", "修改记录", "单据状态操作"}) { SkillService.Skill s = skills.find(name); assertNotNull(s, name + " 必须存在"); assertTrue(s.brief().length() > 4, "首行=一句话用途"); assertTrue(s.body().contains("【技能:"), "正文为技能全文"); } } @Test void fuzzyNameMatches() { assertEquals("新建报价", skills.find("新建报价单").name(), "「新建报价单」→ 新建报价"); assertEquals("修改记录", skills.find("修改").name()); assertNull(skills.find("不存在的技能")); } @Test void indexHasOneLinePerSkill() { String idx = skills.indexLines(); assertEquals(5, idx.strip().split("\n").length); assertTrue(idx.contains("- 新建报价:")); } }