test(knowledge): seed 数据完整性测试(RED)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package model
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestSeedDiseasesCoverCoreFour(t *testing.T) {
|
||||
core := []string{"核型多角体病", "白僵病", "软化病", "微粒子病"}
|
||||
got := map[string]bool{}
|
||||
for _, d := range SeedDiseases {
|
||||
got[d.Name] = true
|
||||
}
|
||||
for _, name := range core {
|
||||
if !got[name] {
|
||||
t.Errorf("核心蚕病缺失: %s", name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeedDiseasesRequiredFields(t *testing.T) {
|
||||
for _, d := range SeedDiseases {
|
||||
if d.Name == "" || d.Category == "" {
|
||||
t.Errorf("病种名称/类别不能为空: %+v", d)
|
||||
}
|
||||
if d.Pathogen == "" || d.Symptoms == "" || d.Transmission == "" || d.Prevention == "" {
|
||||
t.Errorf("病种必备字段缺失(病原/症状/传播途径/防治指南): %s", d.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeedDiseasesNamesUnique(t *testing.T) {
|
||||
seen := map[string]bool{}
|
||||
for _, d := range SeedDiseases {
|
||||
if seen[d.Name] {
|
||||
t.Errorf("病种名称重复: %s", d.Name)
|
||||
}
|
||||
seen[d.Name] = true
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeedKnowledgeArticlesHasAIGuide(t *testing.T) {
|
||||
found := false
|
||||
for _, a := range SeedKnowledgeArticles {
|
||||
if a.Kind == "ai_guide" && a.Title != "" && a.Content != "" {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
t.Error("缺少 AI 结果解读文章(kind=ai_guide)")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user