diff --git a/ccdi-lsfx/pom.xml b/ccdi-lsfx/pom.xml
index bf3f3ed3..2fac92c9 100644
--- a/ccdi-lsfx/pom.xml
+++ b/ccdi-lsfx/pom.xml
@@ -44,5 +44,11 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
diff --git a/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/client/CreditParseClientTest.java b/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/client/CreditParseClientTest.java
new file mode 100644
index 00000000..565bdfa7
--- /dev/null
+++ b/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/client/CreditParseClientTest.java
@@ -0,0 +1,4 @@
+package com.ruoyi.lsfx.client;
+
+class CreditParseClientTest {
+}
diff --git a/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/controller/CreditParseControllerTest.java b/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/controller/CreditParseControllerTest.java
new file mode 100644
index 00000000..e1249ed5
--- /dev/null
+++ b/ccdi-lsfx/src/test/java/com/ruoyi/lsfx/controller/CreditParseControllerTest.java
@@ -0,0 +1,29 @@
+package com.ruoyi.lsfx.controller;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import org.junit.jupiter.api.Test;
+import org.springframework.mock.web.MockMultipartFile;
+
+import java.nio.charset.StandardCharsets;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class CreditParseControllerTest {
+
+ private final CreditParseController controller = new CreditParseController();
+
+ @Test
+ void parse_shouldRejectEmptyFile() {
+ AjaxResult result = controller.parse(null, null, null);
+ assertEquals(500, result.get("code"));
+ }
+
+ @Test
+ void parse_shouldRejectNonHtmlFile() {
+ MockMultipartFile file = new MockMultipartFile(
+ "file", "credit.pdf", "application/pdf", "x".getBytes(StandardCharsets.UTF_8)
+ );
+ AjaxResult result = controller.parse(file, null, null);
+ assertEquals(500, result.get("code"));
+ }
+}