golang的表格驱动测试
一、leetcode的算法题
package main import (
"fmt"
"strings"
) func lengthOfNonRepeatingSubStr(s string)int{
lastOccurred :=make(map[rune]int)
start:=0
maxLength:=0
//将字符串转成 ASCII 码的切片,循环获取下标与值
for i,ch:=range []rune(s){
if lastI,ok:=lastOccurred[ch];ok && lastI>=start{
start=lastOccurred[ch]+1
}
if i-start+1>maxLength {
maxLength=i-start+1
}
lastOccurred[ch]=i
}
return maxLength
}
func main() {
fmt.Println(
lengthOfNonRepeatingSubStr("abcabcbb"),
lengthOfNonRepeatingSubStr("bbbbb"),
lengthOfNonRepeatingSubStr("阿斯顿法国规划开发阿斯顿发放")) fmt.Println([]byte("asfsawersd")) str1:="sdfsad asdfsadf sad;fasfd"
s:=strings.Fields(str1)
for index,value:=range s {
fmt.Println(index,value)
}
}
二、普通测试代码
package main
import "testing"
func TestSubstr(t *testing.T) {
tests:=[]struct{
s string
ans int
}{
{"abssafds",4},
{"pwwkew",3},
{"",0},
{"b",1},
{"bbbbbbbb",1},
{"asadfasdf",4},
}
for _,tt:=range tests {
actual:=lengthOfNonRepeatingSubStr(tt.s)
if actual !=tt.ans{
t.Errorf("got %d for input %s:"+"expected %d",actual,tt.s,tt.ans)
}
}
}
#测试通过
#=== RUN TestSubstr
#--- PASS: TestSubstr (0.00s)
#PASS
#测试错误
#修改错误的数据{"pwwkew",2},
#=== RUN TestSubstr
#--- FAIL: TestSubstr (0.00s)
# leetcode_test.go:21: got 3 for input pwwkew:expected 2
#FAIL
三、性能测试代码
func BenchmarkSubstr(b *testing.B){
s:="黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花"
ans:=8
for i:=0;i<b.N;i++{
actual:=lengthOfNonRepeatingSubStr(s)
if actual !=ans {
b.Errorf("got %d for input %s; "+"expected %d",actual,s,ans)
}
}
}
#执行结果
#goos: windows
#goarch: amd64
#pkg: awesomeProject/leetcode
#运行了100万次,每次运行用了1362ns
#BenchmarkSubstr-8 1000000 1361 ns/op
#PASS
golang的表格驱动测试的更多相关文章
- Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例
1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...
- TODO:Golang UDP连接简单测试慎用Deadline
TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...
- Win8驱动测试模式
打开驱动测试模式(保存成bat文件,双击执行) bcdedit /set testsigning on pause 执行完成后,看见提示操作成功的提示,之后我们重启一下,再次进入系统,在桌面的右下角会 ...
- selenium+python(模块化驱动测试)
模块化驱动测试,就是借鉴编程语言中模块化的思想,把重复的操作独立成功公告模块,懂用例执行过程中需要用到这一模块操作时则被调用,这样可以极大的消除重复从而提高测试用例的可维护性 下面具体以126邮箱为例 ...
- linux驱动开发之九鼎板载蜂鸣器驱动测试【转】
本文转载自:http://whylinux.blog.51cto.com/10900429/1932491 字符设备驱动用的fileopretion结构体. 1.板载蜂鸣器的驱动测试 我手里有一个BS ...
- DevOps on DevCloud|如何实现应用接口的混合驱动测试
引言:在"DevOps能力之屋(Capabilities House of DevOps)"中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力. ...
- 流程及迭代驱动测试管理软件, itest 发布到开源中国
itest 源码已发布到码云 ,项目已被开源中国收录!详见 https://www.oschina.net/p/itest-cn 测试人自己开发,汇聚10年沉淀,独创流程驱动测试.度量展现测试人价值 ...
- web自动化测试-模块驱动测试实例和数据驱动测试实例
一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...
- 多层If语句 和 表格驱动 的对比
网文提到表格驱动,总喜欢拿一层if做例子,然而这样未免也太简单. 下文是三层缩进的if和表驱动比较,大家可自行判断优劣. 业务是这样的,某景点分旺季票价和淡季票价,淡季票为旺季的一半,15岁以下孩子再 ...
随机推荐
- Python3实用编程技巧进阶✍✍✍
Python3实用编程技巧进阶 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以 ...
- Winform 窗体闪烁 & 任务栏提示
准备: [DllImport("user32.dll")] static extern bool FlashWindowEx(ref FLASHWINFO pwfi); [DllI ...
- 整理及优化CSS代码的7个原则
作为网页设计师(前端工程师),你可能还记得曾经的那个网页大小建议:一个网页(包括HTML.CSS.Javacript.Flash和图片)尽量不要超过30KB的大小,随着互联网的日益庞大,网络带宽也在飞 ...
- JS事件 鼠标单击事件( onclick )通常与按钮一起使用。onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行
鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件.同时onclick事件调用的程序块就会被执行,通常与按钮一起使用. 比如,我们单击按钮时,触发 ...
- 常见的arp欺骗
三.常见ARP欺骗形式 1.假冒ARP reply包(单播) XXX,I have IP YYY and my MAC is ZZZ! 2.假冒ARP reply包(广播) Hello everyon ...
- 字体jquery ---
You don’t need icons! Here are 100+ unicode symbols that you can use Danny Markov December 3rd, 2014 ...
- 为什么串行传输时总是LSB在前?
https://superuser.com/questions/1104212/why-do-serial-ports-send-data-least-significant-bit-first 其实 ...
- Jupyter NoteBook输出的图表太小看不清怎么办?
如果使用的是matplotlib绘图,可以通过以下命令更改图片的大小: %matplotlib linline 如果是 plt.figure(figsize=(5,3)) #其中(5, 3)用于控制图 ...
- thinkphp 模版引擎
系统支持原生的PHP模板,而且本身内置了一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模版引擎部分. 内置的大理石平台检定规程模板引 ...
- iOS ARC下命名规则
当我在ARC模式下写以下代码的时候,编译器报错 Semantic Issue: Property's synthesized getter follows Cocoa naming conventio ...