ARTS-S golang单元测试

golang单元测试

在$GOPATH的src目录下建目录demo_unittest

在目录demo_unittest下建文件calc.go,内容如下:

package demo_unittest

func Add(a, b int) int {
    return a + b
}

func Sub(a, b int) int {
    return a - b
}

func Mul(a, b int) int {
    return a * b
}

func Div(a, b int) int {
    return a / b
}

在目录demo_unittest下建文件tests/calc_test.go内容如下

package tests

import (
    "demo_unittest"
    "testing"
)

func TestAdd(t *testing.T) {
    result := demo_unittest.Add(1, 2)
    if result != 3 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 3)
    }
}

func TestSub(t *testing.T) {
    result := demo_unittest.Sub(1, 2)
    if result != -1 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, -1)
    }
}

func TestMul(t *testing.T) {
    result := demo_unittest.Mul(1, 2)
    if result != 2 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
    }
}

func TestDiv(t *testing.T) {
    result := demo_unittest.Div(4, 2)
    if result != 2 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
    }
}

在目录demo_unittest/tests下建文件calc1_test.go内容如下

package tests

import (
    "demo_unittest"
    "testing"
)

func TestAdd1(t *testing.T) {
    result := demo_unittest.Add(1, 2)
    if result != 3 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 3)
    }
}

func TestSub1(t *testing.T) {
    result := demo_unittest.Sub(1, 2)
    if result != -1 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, -1)
    }
}

func TestMul1(t *testing.T) {
    result := demo_unittest.Mul(1, 2)
    if result != 2 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
    }
}

func TestDiv1(t *testing.T) {
    result := demo_unittest.Div(4, 2)
    if result != 2 {
        t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
    }
}

在tests目录下执行如下命令,运行单元测试

go test -v

如果只想运行某一个单元测试函数,运行如下命令

go test -v -run TestMul1 demo_unittest/tests

原文地址:https://www.cnblogs.com/zhouyang209117/p/10242329.html

时间: 2024-08-03 05:58:02

ARTS-S golang单元测试的相关文章

golang 单元测试

单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率,所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解 go 语言原生支持了单元测试,使用上非常简单,测试代码只需要放到以 _test.go 结尾的文件中即可.golang的测试分为单元测试和性能测试,单元测试的测试用例以 Test 开头,性能测试以 Benchmark 开头 举个例子 实现排列组合函数对应的单元测试和性能测试 实现排列组合函数 // combina

golang单元测试

使用testing进行单元测试 golang的测试库testing 测试文件与被测试文件在同一个包中 测试文件名为被测试文件名(去后缀)_test.go 测试用例函数以Test开头,TestFunc1(t *testing.T) 一个测试用例文件中可以有多个测试用例函数 在测试用例函数中调用被测试函数,根据函数返回结果与预期的正确结果的比较, 判断函数是否正确.t.Log输出日志,t.Fatal输出错误信息. 执行测试文件的方式 执行全部测试文件中全部函数 go test 如果需要输出日志信息g

golang 单元测试&&性能测试

一:单元测试 1.为什么要做单元测试和性能测试 减少bug 快速定位bug 减少调试时间 提高代码质量 2.golang的单元测试 单元测试代码的go文件必须以_test.go结尾 单元测试的函数名必须以Test开头,是可导出公开的函数 测试函数的签名必须接收一个指向testing.T类型的指针,并且不能返回任何值 3.golang单元测试组 有好几个不同的输入以及输出组成的一组单元测试 4.测试覆盖率 go test -cover 直接输出覆盖率 go test -run TestAll 指定

Golang 单元测试与性能测试

Go 自带了测试框架和工具,在 testing 包中,以便完成单元测试(T 类型)和性能测试(B 类型).一般测试代码放在*_test.go 文件中,与被测代码放于同一个包中. 单元测试 测试函数名称格式是:Test[^a-z],即以 Test 开头,跟上非小写字母开头的字符串.每个测试函数都接受一个testing.T 类型参数,用于输出信息或中断测试. 测试方法有: Fail: 标记失败,但继续执行当前测试函数 FailNow: 失败,立即终止当前测试函数执行 Log: 输出错误信息 Erro

【GoLang】GoLang 单元测试、性能测试使用方法

单元测试代码: ackage test import ( // "fmt" "testing" ) func Test_FlowControl(t *testing.T) { var x int64 = 10 if x == 10 { // fmt.Println("x is 10") t.Log("x is 10") } else { // fmt.Println("x is not 10") t.Log

GoCN每日新闻(2019-11-10)

GoCN每日新闻(2019-11-10) 1. Go Netpoll I/O多路复用构建原生网络模型之源码深度解析 https://taohuawu.club/go-netpoll-io-multiplexing-reactor2. Go垃圾回收:第三部分-GC的步调 https://studygolang.com/articles/245623. Go语言协程池模型-图数据库(Neo4j)写入 https://www.jianshu.com/p/d27504514c174. 使用Go创建一个简

go单元测试进阶篇

本文档说明go语言自带的测试框架未提供或者未方便地提供的测试方案,主要是用于解决写单元测试中比较头痛的依赖问题.也就是伪造模式,经典的伪造模式有桩对象(stub),模拟对象(mock)和伪对象(fake).比较幸运的是,社区有丰富的第三方测试框架支持支持.下面就对笔者亲身试用并实践到项目中的几个框架做介绍: 1.gomock https://godoc.org/github.com/golang/mock/gomock gomock模拟对象的方式是让用户声明一个接口,然后使用gomock提供的m

Golang测试技术

本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术.高级技术(并发测试.mock/fake.竞争条件测试.并发测试.内/外部测 试.vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助.原Slide访问需要自己搭梯子.另外这里也要吐槽一 下:Golang官方站的slide都是以一种特有

使用Golang编写优化算法 (1)

动手写点东西是学习新知识很重要的一个阶段.之前用 Python 和 JavaScript 实现优化算法,现在用 Golang 来实现.语法上略有不爽,某些C语言的思维又回来了. - Golang 用 package 来组织代码,同一 package 下不同文件之间的标识符是共享的,不能包含两个相同名称的函数.而且只有 package main 能够包含 main 函数.所以将公用的函数提取出来,放在package common.同时,每种例子程序移动到 examples 目录下. - 在 Cle