首页 > 其他分享 >1_基础知识

1_基础知识

时间:2022-10-22 11:01:59浏览次数:40  
标签:文件 接口 基础知识 go 测试 test main

1_go基础

go test 用法

可以直接指定test文件
可以直接指定example文件
test文件必须是xxx_test.go
- xxx_test文件 一般和测试程序同一个包
- 函数 TestAdd 以Test开头, 参数固定为t *Testing.T
- 如果出错就Error打印,测试框架会自动报错
example文件也是xxx_test.go
- 函数名必须ExampleAdd 以Example开头
- 一般也和测试程序同一个包
- 测试函数需要//Output: 格式,写预期输出

如果不在同一个包内, 比如叫main_test.go
- 包含一般测试Test、用法实例Example,性能测试benchmark
- 需要引入main包,一般这么写 import . "main"
- 前提是main放入GOPATH的src目录,如一般库一样,这样import命令才能正确导入
- 这样不能直接指定test文件测试。只能go test . 执行全部当前目录下测试用例
- 系统库,如果fmt,context...都是这么写的。
- 因为test文件必须和主代码文件在同一个目录,牢记同一个目录,不允许你把测试文件复制到上层,然后直接按路径导入,比如 import "./mymain" , 这样执行会报错。

interface类型

因为intreface{} 没有待实现的抽象函数,叫做空接口,任何其他类型都可以说我实现了你。

所以如果一个函数参数是interface{} , 那么可以传任何类型,比如int32、float32..., 因为这些类型都实现了interface{}空接口。

进一步扩展我们知道,如果一个接口A实现了另一个接口A1, 那么A1为参的函数,都可以传A类型实例。

就好比: 我实现了你定义的规则,我就能模仿你,变成你,代替你的位置。

什么地方用呢: 比如写test用例,你测试包只需要定义自己的接口,接口包含的函数可以只取部分testing.T接口定义的函数,这样可以直接传 t *testing.T作为测试函数的参数。

标签:文件,接口,基础知识,go,测试,test,main
From: https://www.cnblogs.com/hystill/p/16815561.html

相关文章

  • java基础知识
    JAVA基础知识标识符和关键字关键字标识符无论类名、方法名、变量名都是标识符命令规则:所有标识符都应该以大小写字符、美元符号、或下划线开始首字符后可以......
  • 爬虫基础知识(web前端,请求模块urllib,重构user_agent)
    ✅个人主页:​​hacker_demo的51CTO博客......
  • 计算机基础知识
    计算机基础知识目录计算机存储单位进制转换进制之间的转换计算机的储存单位编码计算机存储单位进制转换二级制进制是计算机中广泛采用的一种数制,二进制使用0和1......
  • 多线程基础知识
    【单核处理器和多核处理器的多线程】单核处理器:为每个线程分配时间片。来模拟并发多核处理器:一核一线程,真正实现并发 【标志】线程一致性,IsAlive就为true,否则为fals......
  • 摄像头基础知识(二):Bayer、Raw与ISP
     摄像头基础知识(二):Bayer、Raw与ISP_EEer!的博客-CSDN博客_ispraw 摄像头基础知识(二):Bayer、Raw与ISPEEer!已于2022-10-1514:49:23修改254收藏分类专栏:camer......
  • 摄像头基础知识(一):mipi与lane
    摄像头基础知识(一):mipi与lane_EEer!的博客-CSDN博客 摄像头基础知识(一):mipi与laneVIP文章EEer!已于2022-10-1514:41:29修改469收藏2分类专栏:camera文章标签:c......
  • Docker_基础知识
    容器概述容器本义:盛装物体、隔离物体。容器意义:解决虚拟化资源浪费的问题。容器沿革:1979---2013---                    版本:企业版(EE)/社区版(CE)1.......
  • JavaScript基础知识
    JavaScript基础知识##输出语句*1.window.alert()--写入警告框*2.document.write()---写入HTML输出*3.console.log()---写入浏览器控制台*alert("helloworld!......
  • Gradle基础知识-Wrapper,Daeman;Groovy闭包语法
    gradledescirbe:gradle本质就是一个bin脚本,分为window和unix。启动gradle:启动jvm加载lib所需的库gradlewrapper输入gradlewrapper命令会在当前目录创建安装一个jar包......
  • (九)MySQL基础知识之 事务(commit, rollback,begin,set autocommit)
    昨天说了下MySQL的正则表达式,今天我们来说下事务的基础知识。 什么是MySQL的事务呢? 事务是由一步或几步数据库操作序列组成逻辑执行单元,这一系列操作要么全部执行,要么全......