首页 > 文章列表 > 如何编写有效的 golang 单元测试?

如何编写有效的 golang 单元测试?

单元测试 golang
333 2024-11-27

本单元测试验证了 Sleep100ms() 函数在运行 100 毫秒后完成。测试涉及测量函数运行前后的时间差并验证差值是否大于或等于 100 毫秒,以确保函数正常执行。

如何编写有效的 golang 单元测试?

package mypkg

import (
    "testing"
    "time"
)

// Sleep100ms 模拟一个耗时操作
func Sleep100ms() {
    time.Sleep(100 * time.Millisecond)
}

// TestSleep100ms 单元测试 Sleep100ms 函数
func TestSleep100ms(t *testing.T) {
    startTime := time.Now()

    Sleep100ms()

    duration := time.Since(startTime)

    if duration.Milliseconds() < 100 {
        t.Errorf("Sleep100ms() expected to run for at least 100 milliseconds, got %d", duration.Milliseconds())
    }
}