golang单元测试

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

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

  1. package demo_unittest
  2. func Add(a, b int) int {
  3. return a + b
  4. }
  5. func Sub(a, b int) int {
  6. return a - b
  7. }
  8. func Mul(a, b int) int {
  9. return a * b
  10. }
  11. func Div(a, b int) int {
  12. return a / b
  13. }

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

  1. package tests
  2. import (
  3. "demo_unittest"
  4. "testing"
  5. )
  6. func TestAdd(t *testing.T) {
  7. result := demo_unittest.Add(1, 2)
  8. if result != 3 {
  9. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 3)
  10. }
  11. }
  12. func TestSub(t *testing.T) {
  13. result := demo_unittest.Sub(1, 2)
  14. if result != -1 {
  15. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, -1)
  16. }
  17. }
  18. func TestMul(t *testing.T) {
  19. result := demo_unittest.Mul(1, 2)
  20. if result != 2 {
  21. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
  22. }
  23. }
  24. func TestDiv(t *testing.T) {
  25. result := demo_unittest.Div(4, 2)
  26. if result != 2 {
  27. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
  28. }
  29. }

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

  1. package tests
  2. import (
  3. "demo_unittest"
  4. "testing"
  5. )
  6. func TestAdd1(t *testing.T) {
  7. result := demo_unittest.Add(1, 2)
  8. if result != 3 {
  9. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 3)
  10. }
  11. }
  12. func TestSub1(t *testing.T) {
  13. result := demo_unittest.Sub(1, 2)
  14. if result != -1 {
  15. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, -1)
  16. }
  17. }
  18. func TestMul1(t *testing.T) {
  19. result := demo_unittest.Mul(1, 2)
  20. if result != 2 {
  21. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
  22. }
  23. }
  24. func TestDiv1(t *testing.T) {
  25. result := demo_unittest.Div(4, 2)
  26. if result != 2 {
  27. t.Errorf("TextUrl was incorrect, got: %d, want: %d.", result, 2)
  28. }
  29. }

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

  1. go test -v

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

  1. go test -v -run TestMul1 demo_unittest/tests

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

  1. Golang单元测试框架整理

    目录 一.单元测试是什么 二.单元测试的意义 三.Golang单元测试框架 3.1 Golang内置testing包 3.1.1 简单的测试 3.1.2 Benchmark 基准测试 3.1.3 运行 ...

  2. golang单元测试

    使用testing进行单元测试 golang的测试库testing 测试文件与被测试文件在同一个包中 测试文件名为被测试文件名(去后缀)_test.go 测试用例函数以Test开头,TestFunc1 ...

  3. golang 单元测试

    单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率.所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解. go 语言 ...

  4. golang 单元测试&&性能测试

    一:单元测试 1.为什么要做单元测试和性能测试 减少bug 快速定位bug 减少调试时间 提高代码质量 2.golang的单元测试 单元测试代码的go文件必须以_test.go结尾 单元测试的函数名必 ...

  5. golang 单元测试(一)

    单元测试函数类型 Test(功能测试) 函数规则: 函数名: TestXxxx , 以Test为前缀.Xxxx以大写字母开头 参数类型: *testing.T func TestXxxx(t *tes ...

  6. golang单元测试简述

      Golang中内置了对单元测试的支持,不需要像Java一样引入第三方Jar才能进行测试,下面将分别介绍Golang所支持的几种测试: 一.测试类型   Golang中单元测试有功能测试.基准测试. ...

  7. golang单元测试一(简单函数测试)

    0.1.索引 https://blog.waterflow.link/articles/1663688140724 1.简介 单元测试是测试代码.组件和模块的单元函数.单元测试的目的是清除代码中的错误 ...

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

    单元测试代码: ackage test import ( // "fmt" "testing" ) func Test_FlowControl(t *testi ...

  9. Golang 单元测试和性能测试

    开发程序其中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早 ...

随机推荐

  1. PHP 格式化公钥私钥(pem文件)

    <?php header("Content-Type: text/html; charset=utf-8"); $filename = dirname(__FILE__).& ...

  2. Xshell选中的同时把内容复制到剪贴板

    1.设置对话框 工具 -> 选项 -> 键盘和鼠标 -> 将选定的文本自动复制到剪贴板 2.贴图如下 2.1.打开设置对话框 2.2.设置键盘鼠标,左键复制

  3. Class文件结构全面解析(上)

    什么是Class文件? 在Java刚刚诞生的时候就提出了一个非常著名的口号:"一次编写,到处运行.(Write Once,Run Anywhere)".为了实现平台无关性,各种不同 ...

  4. 前端小白在asp.net core mvc中使用ECharts

    对于在浏览器中绘制图形图表,目前有较多的js类库可以使用,如:ChartJS,Flot,canvasjs等,但是今天介绍的主角为国产图表库,并在apache孵化,就是大名鼎鼎的echarts. 前方高 ...

  5. WordPress 添加title中的logo

    WordPress 添加title中的logo <!--网页标题左侧显示--> <link rel="icon" href="/favicon.png& ...

  6. 领扣(LeetCode)字符串相加 个人题解

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包 ...

  7. bash:字符串变量查找

    提供了替换文本的查找替换功能,如 sed s/Wintel/Linux/g data (将Wintel替换为Linux)  大命令 下边是基于变量的小命令: 1)查找与替换 ${data/Wintel ...

  8. Django使用mysql数据的流程

    创建一个mysql数据库 1.打开终端(cmd): 输入: mysql -uroot -p 密码:*** 输入: create database 数据库名字; 2.在settings中进行配置 DAT ...

  9. Amazon Lightsail部署LAMP应用程序之部署实验室基础架构

    一.在Lightsail中创建LAMP堆栈实例 1.在AWS管理控制台的"服务"下拉选项中单击"Lightsail". 2.在语言方面选择 "英语&q ...

  10. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(2)- Boot配置(ISP_Pin, OTP)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Boot配置. 在上一篇文章 Boot简介 里痞子衡为大家介绍了Boot基本原理以及i.MXRTx ...