TestCalculateSummary 测试汇总计算
(t *testing.T)
| 277 | |
| 278 | // TestCalculateSummary 测试汇总计算 |
| 279 | func TestCalculateSummary(t *testing.T) { |
| 280 | results := []*BatchResult{ |
| 281 | { |
| 282 | TestCaseID: "case1", |
| 283 | Scores: []*ScoreResult{ |
| 284 | {Name: "scorer1", Value: 0.8}, |
| 285 | {Name: "scorer2", Value: 0.9}, |
| 286 | }, |
| 287 | Duration: 100 * time.Millisecond, |
| 288 | Error: "", |
| 289 | }, |
| 290 | { |
| 291 | TestCaseID: "case2", |
| 292 | Scores: []*ScoreResult{ |
| 293 | {Name: "scorer1", Value: 0.7}, |
| 294 | {Name: "scorer2", Value: 0.85}, |
| 295 | }, |
| 296 | Duration: 150 * time.Millisecond, |
| 297 | Error: "", |
| 298 | }, |
| 299 | { |
| 300 | TestCaseID: "case3", |
| 301 | Scores: []*ScoreResult{}, |
| 302 | Duration: 0, |
| 303 | Error: "test error", |
| 304 | }, |
| 305 | } |
| 306 | |
| 307 | summary := calculateSummary(results) |
| 308 | |
| 309 | if summary.TotalCases != 3 { |
| 310 | t.Errorf("TotalCases = %d, want 3", summary.TotalCases) |
| 311 | } |
| 312 | |
| 313 | if summary.SuccessfulCases != 2 { |
| 314 | t.Errorf("SuccessfulCases = %d, want 2", summary.SuccessfulCases) |
| 315 | } |
| 316 | |
| 317 | if summary.FailedCases != 1 { |
| 318 | t.Errorf("FailedCases = %d, want 1", summary.FailedCases) |
| 319 | } |
| 320 | |
| 321 | // 验证平均分 |
| 322 | if avgScore1, ok := summary.AverageScores["scorer1"]; !ok || avgScore1 != 0.75 { |
| 323 | t.Errorf("AverageScores[scorer1] = %v, want 0.75", avgScore1) |
| 324 | } |
| 325 | |
| 326 | if avgScore2, ok := summary.AverageScores["scorer2"]; !ok || avgScore2 != 0.875 { |
| 327 | t.Errorf("AverageScores[scorer2] = %v, want 0.875", avgScore2) |
| 328 | } |
| 329 | |
| 330 | // 验证平均执行时间 |
| 331 | expectedAvgDuration := 125 * time.Millisecond |
| 332 | if summary.AverageDuration != expectedAvgDuration { |
| 333 | t.Errorf("AverageDuration = %v, want %v", summary.AverageDuration, expectedAvgDuration) |
| 334 | } |
| 335 | } |
| 336 |
nothing calls this directly
no test coverage detected