【GO】单元测试

2021年11月26日 阅读数:3
这篇文章主要向大家介绍【GO】单元测试,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

单元测试案例

测试步骤

假如我说咱们如今已经封装好了一个test.go的文件,代码以下

package main

import "fmt"

func main() {
   
	fmt.Println(GetFibonacci(6))
	sum := GetNum(10)
	fmt.Println(sum)
	getRecursion := GetRecursion(10)
	fmt.Println(getRecursion)
	fbNum := GetFbNum(10)
	fmt.Println(fbNum)
}

/** 递归就是本身调本身 递归必定要有终止条件,不然就会无限循环 */
func GetFibonacci(n int) int {
   
	// 若是是第0项或者第2项直接返回1
	if n == 0 || n == 1 {
   
		return 1
	} else {
   
		return GetFibonacci(n-1) + GetFibonacci(n-2)
	}
}

/** 使用非递归实现斐波那契数列 */
func GetFbNum(n int) int {
   
	a := 1
	b := 1
	c := a + b
	for i := 1; i <= n; i++ {
   
		a = b
		b = c
		c = a + b
	}
	return a
}

/** 使用循环来实现天然数之和 */
func GetNum(n int) (sum int) {
   
	for i := 1; i <= n; i++ {
   
		sum += i
	}
	return
}

/** 使用递归来实现天然数求和 */
func GetRecursion(n int) (sum int) {
   
	if n == 1 {
   
		return 1
	} else {
   
		return n + GetRecursion(n-1)
	}
}

而后咱们须要在建立一个test_test.go的文件代码以下

package main

import "testing"

/** 测试斐波那契数列 */
func TestGetFibonacci(t *testing.T) {
   
	fibonacci := GetFibonacci(6)
	if fibonacci != 13 {
   
		t.Errorf("测试失败")
		return
	}
	t.Logf("成功")
}

func TestGetRecursion(t *testing.T) {
   
	mMap := make(map[int]int)
	mMap[10] = 55
	mMap[100] = 5050
	for key, value := range mMap {
   
		if GetRecursion(key) != value {
   
			t.Errorf("测试失败")
			return
		}
	}
	t.Logf("测试成功 ")
}

文件目录结构

只须要把这俩个文件放在一个包里便可
在这里插入图片描述微信

用法

在上边咱们能够看到在test_test.go的文件里,咱们都用了Test开头,而后后边是Test.go里边的方法名。而后在调用Test.go的方法,用来作测试单元测试

测试

在这里插入图片描述
而后就会得到测试结果,对于go 的单元测试使用仍是很简单的测试

博主微信欢迎交流

在这里插入图片描述