添加完善部分测试用例

This commit is contained in:
yun
2026-09-18 12:10:06 +08:00
parent 5b6795aefd
commit fcfe013119
9 changed files with 739 additions and 6 deletions
+100 -1
View File
@@ -326,7 +326,7 @@ func TestCalculateNextInterval(t *testing.T) {
IntervalTime: 24 * time.Hour,
},
currentTime: now,
expected: time.Date(2023, 6, 16, 0, 0, 0, 0, time.UTC),
expected: createTime.Add(24 * time.Hour),
},
}
@@ -857,3 +857,102 @@ func TestGetNextTime_Timezone(t *testing.T) {
})
}
}
func TestGetCronSche_NilParser(t *testing.T) {
_, err := GetCronSche("* * * * *", nil)
if err != ErrCronParser {
t.Errorf("expected ErrCronParser, got %v", err)
}
}
func TestGetCronSche_EmptyExpression(t *testing.T) {
parser := cron.NewParser(cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow)
_, err := GetCronSche("", &parser)
if err != ErrCronExpression {
t.Errorf("expected ErrCronExpression, got %v", err)
}
}
func TestGetCronSche_InvalidExpression(t *testing.T) {
parser := cron.NewParser(cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow)
_, err := GetCronSche("invalid cron", &parser)
if err == nil {
t.Error("expected error for invalid cron expression")
}
}
func TestJobTypeEverySecond_Unhandled(t *testing.T) {
job := JobData{
JobType: JobTypeEverySecond,
}
_, err := GetNextTime(time.Now(), job)
if err == nil {
t.Error("expected error for unhandled JobTypeEverySecond")
}
}
func TestValidateJobData_CronNilSchedule(t *testing.T) {
job := JobData{
JobType: JobTypeCron,
CronExpression: "* * * * *",
CronSchedule: nil,
}
err := validateJobData(job)
if err != ErrCronParser {
t.Errorf("expected ErrCronParser, got %v", err)
}
}
func TestValidateJobData_CronEmptyExpression(t *testing.T) {
job := JobData{
JobType: JobTypeCron,
CronExpression: "",
CronSchedule: nil,
}
err := validateJobData(job)
if err != ErrCronExpression {
t.Errorf("expected ErrCronExpression, got %v", err)
}
}
func TestValidateJobData_IntervalNegative(t *testing.T) {
job := JobData{
JobType: JobTypeInterval,
IntervalTime: 0,
BaseTime: time.Now(),
}
err := validateJobData(job)
if err != ErrIntervalTime {
t.Errorf("expected ErrIntervalTime, got %v", err)
}
}
func TestValidateJobData_IntervalZeroBaseTime(t *testing.T) {
job := JobData{
JobType: JobTypeInterval,
IntervalTime: time.Second,
BaseTime: time.Time{},
}
err := validateJobData(job)
if err != ErrBaseTime {
t.Errorf("expected ErrBaseTime, got %v", err)
}
}
func TestCalculateNextInterval_ExactBoundary(t *testing.T) {
baseTime := time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)
now := baseTime.Add(2 * time.Second)
job := JobData{
JobType: JobTypeInterval,
BaseTime: baseTime,
IntervalTime: time.Second,
}
next, err := calculateNextInterval(now, job)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
expected := baseTime.Add(3 * time.Second)
if !next.Equal(expected) {
t.Errorf("expected %v, got %v", expected, next)
}
}