mirror of https://gitee.com/dromara/liteFlow
test(agent): cover skill tool container fallback and defensive paths
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e8cb271d5a
commit
29e387426a
|
|
@ -100,6 +100,36 @@ public class SkillBoxFactoryTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToolFallsBackToReflectionWhenAbsentFromContainer() throws Exception {
|
||||
StubContextAware emptyContainer = new StubContextAware(); // 不注册任何 bean
|
||||
installContextAware(emptyContainer);
|
||||
try {
|
||||
SkillLoadResult result = SkillBoxFactory.build(new Toolkit(), cfg, List.of("tool-skill"));
|
||||
|
||||
Assertions.assertEquals(List.of("tool-skill"), result.skillNames());
|
||||
// 容器中无该 bean,降级反射实例化一次
|
||||
Assertions.assertEquals(1, SkillEchoTool.CONSTRUCT_COUNT.get());
|
||||
} finally {
|
||||
ContextAwareHolder.clean();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToolFallsBackToReflectionWhenContainerAccessFails() throws Exception {
|
||||
StubContextAware brokenContainer = new StubContextAware(true); // hasBean 抛异常,模拟容器未就绪
|
||||
installContextAware(brokenContainer);
|
||||
try {
|
||||
SkillLoadResult result = SkillBoxFactory.build(new Toolkit(), cfg, List.of("tool-skill"));
|
||||
|
||||
Assertions.assertEquals(List.of("tool-skill"), result.skillNames());
|
||||
// 容器访问异常被吞掉并降级反射实例化一次
|
||||
Assertions.assertEquals(1, SkillEchoTool.CONSTRUCT_COUNT.get());
|
||||
} finally {
|
||||
ContextAwareHolder.clean();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyAllowListLoadsAllSkills() {
|
||||
SkillLoadResult result = SkillBoxFactory.build(new Toolkit(), cfg, List.of());
|
||||
|
|
|
|||
Loading…
Reference in New Issue