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

网站建立需要多久清远网站制作公司

网站建立需要多久,清远网站制作公司,58招聘求职找工作,苏晋建设集团网站题目一#xff1a;单元测试中使用—打桩 打桩概念#xff1a;使用A替换 原函数B#xff0c;那么A就是打桩函数打桩原理#xff1a;运行时#xff0c;通过一个包#xff0c;将内存中函数的地址替换为桩函数的地址打桩操作#xff1a;利用Patch#xff08;#xff09;函…题目一单元测试中使用—打桩 打桩概念使用A替换 原函数B那么A就是打桩函数打桩原理运行时通过一个包将内存中函数的地址替换为桩函数的地址打桩操作利用Patch函数将调用外部依赖等函数数据库等依赖函数替换为自己写的函数这样就是实现了不对外部数据的一个强依赖最简单的用法官方解释Monkey’s API is very simple and straightfoward. Call monkey.Patch(, ) to replace a function. For example: package mainimport (fmtosstringsbou.ke/monkey )func main() {monkey.Patch(fmt.Println, func(a ...interface{}) (n int, err error) {s : make([]interface{}, len(a))for i, v : range a {s[i] strings.Replace(fmt.Sprint(v), hell, *bleep*, -1)}return fmt.Fprintln(os.Stdout, s...)})fmt.Println(what the hell?) // what the *bleep*? }下面是对一个io文件的mock示例文件为外部依赖存在不稳定性质因此使用mock package testimport (bou.ke/monkeybufiogithub.com/stretchr/testify/assertosstringstesting )func readFirstLine() string {open, err : os.Open(file.txt)defer open.Close()if err ! nil {return }scanner : bufio.NewScanner(open)for scanner.Scan() {return scanner.Text()}return }func replaceLine() string {line : readFirstLine()afterReplace : strings.ReplaceAll(line, 11, 00)return afterReplace }func TestReplace(t *testing.T) {monkey.Patch(readFirstLine, func() string { //注意是readFirstLine函数名而不是readFirstLinereturn line11})defer monkey.Unpatch(readFirstLine) // 注意是readFirstLine函数名而不是readFirstLineres : replaceLine()assert.Equal(t, line00, res) } 题二defer、recovery、panic执行顺序 准则panic当前函数的下一行代码不会被执行到当 panic 被触发后Go 语言的运行时机制会开始查找当前函数以及调用栈上的所有 defer 函数然后依次执行它们。在这个过程中如果某个 defer 函数中使用了 recover 函数那么 recover 就可以捕获到之前触发的 panic 异常恢复程序的正常执行流程从引发 panic 的函数返回继续执行后续代码,注意是直接在panic那里returnpanic当前函数的下面的代码依然不会被执行但是其他后续代码可以执行并且 recover 会返回 panic 时传递的参数在这里就是 “触发一个异常” 这个字符串可以在 defer 函数中根据返回值进行相应的处理比如打印异常信息等。 package mainimport fmtfunc inner() {defer func() {if r : recover(); r! nil {fmt.Printf(inner函数中的defer通过recover捕获到异常异常信息: %v\n, r)}}()panic(inner函数中触发异常)defer fmt.Println(这一行代码直接不会被执行) }func outer() {defer func() {fmt.Println(outer函数中的defer执行了)}()inner() }func main() {fmt.Println(程序开始执行)outer() //其中发生了panic如果没有recovery下面的代码将不再执行fmt.Println(outer函数调用结束后继续执行main函数后面的代码) }
http://www.hkea.cn/news/14482804/

相关文章:

  • 襄阳蒂凯网络网站建设小程序餐饮店会员卡管理系统
  • 网站贸易表格怎么做企业网站开发外包公司
  • 上海企业网站设计公司柳州建设网栗园新居
  • 各大搜索引擎网站登录入口湖南哪里有做网站的
  • 中通建设计院网站wordpress 文章缩放
  • 西安免费做网站价格河北网站开发哪家好
  • 外贸手工做兼职的网站延安做网站的公司电话
  • 网站模板带后台 下载龙岗网站建设哪家技术好
  • 潍坊网页模板建站淘宝客网站怎么做优化
  • 河津网站建设网站建设网页设计与网页制作
  • 用ps做网站还是wdwordpress 评论不了
  • 网站设计初步规划农家乐网站模板
  • it之家网站源码wordpress 谷歌收录
  • 母婴行业网站建设关于网站建设实训报告
  • 对网站做数据统计的目的是什么烟台微信网站建设
  • 怎么制作网站平台电话wordpress媒体库加一个分类
  • 建个静态网站花都网站建设公司
  • 杭州网站模板建站360网站建设
  • 个人网站管理系统wordpress 当前分类
  • 做推广赚钱的网站给人做违法网站规避
  • asp access 做网站宜昌外贸网站建设优化推广
  • 网站网页的书签怎么做许昌网站推广公司
  • 怎么创建网站快捷方式到桌面有人有片资源吗免费高清
  • 深圳官方网站制作成都房地产交易中心官网
  • 北京建网站公司有哪些网址导航网址大全
  • 成都网站制作和建设东莞市公租房申请网站-建设网
  • 扒完网站代码之后怎么做模板图片分类展示网站源码
  • 有关网站开发的国外书籍外包做网站赚钱么
  • 搜索网站的软件有哪些公司建网站怎么做
  • 宁波市有哪些网站建设公司可以注销的网站