最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • Go 的单元测试

    go 的单元测试

    go 提供了一个测试包,包含许多用于单元测试的工具。

    准备
    我们来练习一下,首先准备一个 cube 结构体,该结构体的对象变量稍后将用作测试材料。

    package main
    
    import "math"
    
    type cube struct {
     sisi float64
    }
    func (k cube) volume() float64 {
     return math.pow(k.sisi, 3)
    }
    func (k cube) area() float64 {
     return math.pow(k.sisi, 2) * 6
    }
    func (k cube) circumference() float64 {
     return k.sisi * 12
    }
    
    

    将上面的代码保存在training1.go文件中

    package main
    import "testing"
    var (
    cube cube = cube{4}
    volume should float64 = 64
    area should float64 = 96
    circumference should float64 = 48
    )
    func testcalculatevolume(t *testing.t) {
    t.logf("volume : %.2f", cube.volume())
    if cube.volume() != volumeshould {
    t.errorf("wrong! should be %.2f", volumeshould)
    }
    }
    func testcalculatesurface(t *testing.t) {
    t.logf("area : %.2f", cube.area())
    if cube.area() != areashould {
    t.errorf("wrong! should be %.2f", areashould)
    }
    }
    func testcalculateperimeter(t *testing.t) {
    t.logf("perimeter : %.2f", cube.perimeter())
    if cube.perimeter() != circumferenceshould {
    t.errorf("wrong! should be %.2f", circumferenceshould)
    }
    }
    

    t.logf()方法用于显示日志。该方法相当于 fmt.printf() .
    errorf() 方法用于显示一条日志,后跟一条测试期间发生失败的语句。
    执行测试的方法是使用 go test 命令。由于被测试的struct位于bab55.go文件中,因此使用go test执行测试时,需要将bab55_test.go和bab55.go文件名写入为参数。 -v 或 verbose 参数用于显示测试期间的所有日志输出。
    如下图所示运行应用程序,可以看到没有测试失败。好的,那么尝试更改 keliling() 方法的计算公式。此更改的目的是找出测试失败时失败标记如何显示。

    func (k Cube) Perimeter() float64 {
    return k.Side * 15
    }
    

    之后再次运行测试。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » Go 的单元测试
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 294稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情