当前位置: 首页 > news >正文

聊城哪里可以学网站建设呢房产网站建设哪家好

聊城哪里可以学网站建设呢,房产网站建设哪家好,wordpress自动生成缩略图,网站备案是在哪里的Golang中的单元测试需求传统方法基本介绍单元测试快速入门总结综合案例需求 在工作中#xff0c;我们会遇到这样的情况#xff0c;就是去确认一个函数#xff0c;或者一个模块的结果是否正确 传统方法 在main函数中#xff0c;调用addUpper函数#xff0c;看看实际输出… Golang中的单元测试需求传统方法基本介绍单元测试快速入门总结综合案例需求 在工作中我们会遇到这样的情况就是去确认一个函数或者一个模块的结果是否正确 传统方法 在main函数中调用addUpper函数看看实际输出的记过是否和预期的结果一直如果一直则说明函数正确否则函数有错误然后修改错误 缺点 1.不方便我们需要在main函数中区调用这样就需要去修改main函数如果现在项目在运行就可能去停止项目2.不利于管理因为我们测试多个函数或者多个模块时都需要写在main函数不利于我们管理和清晰思路3.引出单元测试----testing测试框架可以很好解决问题 基本介绍 Go语言中自带有一个轻量级的测试框架testing和自带的 go test命令来实现单元测试和性能测试testing框架和其他语言中的测试框架类似可以基于这个框架写针对相应函数的测试用例(test case也可以基于该框架写相应的压力测试用例。通过单元测试可以解决如下问题 1.确保每个函数是可运行并且运行结果是正确的2.确保写出来的代码性能是好的3.当官测试能及时的发现程序设计或实现的逻辑错误是问题及早暴露便于问题的定位解决而性能测试的重点在于发现程序设计色很的一些问题让程序能够在高并发的情况下还能保持稳定 cla.go包 package main//一个测试函数 func addUpper(n int) int {res : 0for i : 0; i n; i {res i}return res} cal_test.go包 package mainimport testing //引入go的testing框架包//编写一个测试用例去测试addUpper是否正确 func TestAddUpper(t *testing.T) {//调用res : addUpper(10)if res ! 55 {t.Fatalf(AddUpper(10)执行错误期望值%v 实际值%v, 55, res)}//如果正确输出日志t.Logf(AddUpper(10)执行正确) } /*RUN TestAddUppercal_test.go:13: AddUpper(10)执行正确 --- PASS: TestAddUpper (0.00s) PASS */单元测试快速入门总结 1.测试用例文件名必须以_test.go结尾。比如cal_test.gocal不是固定的2.测试用例函数必须以Test开头一般来说就是Test被测试的函数名比如TestAddUpper3.TestAddUpper(t *testing.T)的形参类型必须是 *testing.T4.一个测试用例文件中可以有多个测试用例函数比如TestAddUpper, TestSub5.运行测试用例指令 cmdgo test[如果运行正确无日志错误时会输出日志]cmdgo test -v [运行正确或者是错误都输出日志] 6.当出现错误时候可以使用t.Fatalf来格式化输出错误信息并退出程序7.t.Logf方法可以输出相应的日志8.测试用例函数并没有放在main函数中也执行了这就是测试用例的方便之处9.PASS表示测试用例运行成功FALL表示测试用例运行失败10.测试单个文件一定要带上被测试的原文件 go test -v cal_test.go cal.go11.测试单个方法 go test -v -test.run TestAddUpper 综合案例 1.编写一个Monster结构体字段NameAgeSkill2.给MOnster绑定方法Store可以将一个Monster变量(对象)序列化后保存到文件中3.给Monster绑定方法ReStore,可以将一个序列化的Monster从文件中读取并反序列化为Monster对象检测反序列化名字是否正确4.编程测试用例文件store_test.go编写测试用例函数TestStore和TestRestore进行测试 //monster.go package monsterimport (encoding/jsonfmtio/ioutil )type Monster struct {Name stringAge intSkill string }//给monster绑定方法store可以将一个monster变量(对象),序列化后保存到文件中 func (this *Monster) Store() bool {//先序列化data, err : json.Marshal(this)if err ! nil {fmt.Println(marshal err, err)return false}//保存到文件filePath : d:/monster.sererr ioutil.WriteFile(filePath, data, 0666)if err ! nil {fmt.Println(write file err, err)return false}return true }//给Monster绑定方法ReStore,可以将一个序列化的Monster //从文件中读取并反序列化为Monster对象检测反序列化名字是否正确 func (this *Monster) ReStore() bool {//先从文件中读取序列化的字符串filePath : d:/monster.serdata, err : ioutil.ReadFile(filePath)if err ! nil {fmt.Println(ReadFile err , err)return false}//使用读取到data []byte,对反序列化err json.Unmarshal(data, this)if err ! nil {fmt.Println(unmarshal err, err)return false}return true }//monster_test.go package monsterimport testing//测试用例测试store方法 func TestStore(t *testing.T) {monster : Monster{Name: kunkun,Age: 25,Skill: rap,}res : monster.Store()if !res {t.Fatalf(monster.store() 错误希望为%v 实际为%v, true, res)}t.Logf(monster.store()测试成功)}func TestMonster(t *testing.T) {//先创建一个monster实例不需要指定字段的值var monster Monster{}res : monster.ReStore()if !res {t.Fatalf(monster.restore() 错误希望为%v 实际为%v, true, res)}//进一步判断if monster.Name ! kunkun {t.Fatalf(monster.restore() 错误希望为%v 实际为%v, kunkun, monster.Name)}t.Logf(monster.restore()测试成功) } /*RUN TestStoremonster_test.go:16: monster.store()测试成功 --- PASS: TestStore (0.00s)RUN TestMonstermonster_test.go:31: monster.restore()测试成功 --- PASS: TestMonster (0.00s) PASS */
http://www.hkea.cn/news/14536843/

相关文章:

  • 潍坊市网站建设公司网络推广赚钱项目
  • 网站建设是一项系统工程企业网站建设一条龙
  • 重庆智能网站建设价格企业管理咨询考试题及答案
  • 龙岩市建设局网站城乡建设学校网站
  • 三合一网站一般多少钱做外贸在什么网站好
  • 社区信息建设网站投资 网站 源码
  • 湖南智能网站建设推荐网站开发与设计英文文献
  • 哈尔滨 网站建设公司济南网站制作推广
  • html和php做网站哪个好四个常见的网络营销方式
  • 如何做产品网站网页设计网页设计图片怎么放进去
  • 龙华新区城市建设局网站抖音黑科技引流拓客软件
  • 做i网站成都网站运营公司
  • 营销网站主题有哪些内容邢台做网站公司排名
  • 商务网站建设与管理石家庄软件公司排名
  • 如何做网站页面河南省住房和城乡建设厅人教处网站
  • 有哪些装修网站模板出售网站源码
  • 找回网站后台网站制作什么语言最好
  • 湖州网站做等保费用刷q币网站建设
  • 建设专业网站哪家比较好wordpress 外观 自定义
  • 网站设计 工作如何申请微信公众平台号申请
  • flash网站特点减少网站跳出率
  • 评价一个网站的好坏网站 会员系统 织梦
  • 直播间网站开发设计安徽省建设工程信息网怎么不能查询
  • 芜湖网站开发公司电话网页设计个人网页html代码
  • 生态环境工程公司网站建设成都家装排名前十名
  • 网站开发税收分类万能网站
  • intellij 网站开发网络设计公司有哪些
  • 电商网站的建设与安全自己电脑上做网站别人访问
  • 椒江建设网保障性阳光工程网站广告联盟代理平台
  • 杭州网站建设公司在韩国注册公司需要什么条件