单元测试

源文件1:/util/calc1.go
 
package util

// Add
// @description 求两数的和
// @param num1 int 操作数1
// @param num2 int 操作数2
// @return int 两数的和
func Add(num1 int, num2 int) int {
   return num1 + num2
}

// Subtract
// @description 求两数的差
// @param num1 int 操作数1
// @param num2 int 操作数2
// @return int 两数的差
func Subtract(num1 int, num2 int) int {
   return num1 - num2
}


 
源文件2:/util/calc2.go
 
package util

// Multiply
// @description 求两数的积
// @param num1 int 操作数1
// @param num2 int 操作数2
// @return int 两数的积
func Multiply(num1 int, num2 int) int {
   return num1 * num2
}

// Divide
// @description 求两数的商
// @param num1 int 操作数1
// @param num2 int 操作数2
// @return float64 两数的商
func Divide(num1 int, num2 int) float64 {
   return float64(num1) / float64(num2)
}


 
测试文件1:/test/calc1_test.go
 
package test

import (
   "test.go.com/util"
   "testing"
)

// Test_Add
// @description 测试Add()函数
// @param t *testing.T testing.T对象指针
func Test_Add(t *testing.T) {
   result := util.Add(5, 2)
   if result != 7 {
      t.Errorf("util.Add(5, 2)期望返回值为7,但实际返回值为%d \n", result)
   }
}

// Test_Subtract
// @description 测试Subtract()函数
// @param t *testing.T testing.T对象指针
func Test_Subtract(t *testing.T) {
   result := util.Subtract(5, 2)
   if result != 3 {
      t.Errorf("util.Subtract(5, 2)期望返回值为3,但实际返回值为%d \n", result)
   }
}


 
测试文件2:/test/calc2_test.go
 
package test

import (
   "test.go.com/util"
   "testing"
)

// Test_Multiply
// @description 测试Multiply()函数
// @param t *testing.T testing.T对象指针
func Test_Multiply(t *testing.T) {
   result := util.Multiply(5, 2)
   if result != 10 {
      t.Errorf("util.Multiply(5, 2)期望返回值为10,但实际返回值为%d \n", result)
   }
}

// Test_Divide
// @description 测试Divide()函数
// @param t *testing.T testing.T对象指针
func Test_Divide(t *testing.T) {
   result := util.Divide(5, 2)
   if result != 2.5 {
      t.Errorf("util.Divide(5, 2)期望返回值为2.5,但实际返回值为%f \n", result)
   }
}

// ========== 总结 ========== //
// 1、测试文件的文件名必须为“*_test.go”格式。
// 2、测试函数的函数名必须为“Test_函数名(t *testing.T)”格式。

// 进入测试文件所在目录,执行“go test -v”命令即可开始测试,测试过程如下(所有*_test.go文件都会执行):
// -------------------------(俺是分割线&请无视俺)-------------------------
// [root@localhost test]# go test -v
// === RUN   Test_Add
// --- PASS: Test_Add (0.00s)
// === RUN   Test_Subtract
// --- PASS: Test_Subtract (0.00s)
// === RUN   Test_Multiply
// --- PASS: Test_Multiply (0.00s)
// === RUN   Test_Divide
// --- PASS: Test_Divide (0.00s)
// PASS
// ok      test.go.com/test 0.003s
// [root@localhost test]#

Copyright © 2024 码农人生. All Rights Reserved