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岁以下孩子再 ...
随机推荐
- C/S通信
一直在考虑写一个服务端和客户端通信的框架,就现在的需求,打算走http协议. 通信方式打算用Key/Value的形式. 这里面其实还是有很多的问题的,这样的一个通信框架其实是SOA的一部分.其他 但是 ...
- Substring UVA - 11468 AC自动机+概率DP
题意: 给出一些字符和各自对应的选择概率,随机选择L次后得到一个长度为L的随机字符串S. 给出K个模板串,计算S不包含任何一个模板串的概率 dp[i][j]表示走到AC自动机 i 这个节点 还需要走 ...
- 9.ActiveMQ理论
一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息的容器. 二.为什么要用到消息队列? 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的inse ...
- lds 文件说明
主要符号说明 OUTPUT_FORMAT(bfdname) 指定输出可执行文件格式. OUTPUT_ARCH(bfdname) 指定输出可执行文件所运行 CPU 平台 ENTRY(symbol) 指定 ...
- C 常见字符串操作函数
头文件 <string.h> 1. char *strstr(const char *str1, const char *str2); 判断str2是否为str1的子串 //s ...
- 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分
找到你的位置(JS在页面中的位置) 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页 ...
- stelller插件与background-attachment配合使用,制作滚动页面
stelller插件与background-attachment:fixed配合使用,制作滚动页面
- 关于 argc 和 argv
https://stackoverflow.com/questions/3898021/regarding-mainint-argc-char-argv 当使用命令行启动程序,或者给程序传输参数时,可 ...
- js面试总结3
异步和单线程 题目: 1.同步和异步的区别? 2.一个关于setTimeout的笔试题. 3.前段使用异步的场景有哪些? 什么是异步? console.log(100) setTimeout(func ...
- BZOJ 1398: Vijos1382寻找主人 Necklace(最小表示法)
传送门 解题思路 最小表示法.首先对于判断是不是循环同构的串,直接扫一遍用哈希判即可.然后要输出字典序最小的就要用到最小表示法,首先可以把串复制一遍,这样的话就可以把串变成静态操作.如果对于两个位置\ ...