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

网络快速推广渠道sem优化是什么意思

网络快速推广渠道,sem优化是什么意思,成都网站排名生客seo怎么样,企业网站界面一、尽量用Convey将所有测试用例的Convey汇总 用Convey嵌套的方法#xff0c;将所有测试用例的Convey用一个大的Convey包裹起来#xff0c;每个测试函数下只有一个大的Convey。比如下面的示例代码#xff1a; import (testing. github.com/smartystreet…一、尽量用Convey将所有测试用例的Convey汇总 用Convey嵌套的方法将所有测试用例的Convey用一个大的Convey包裹起来每个测试函数下只有一个大的Convey。比如下面的示例代码 import (testing. github.com/smartystreets/goconvey/convey )func TestStringSliceEqual(t *testing.T) {Convey(TestStringSliceEqual, t, func() {Convey(should return true when a ! nil b ! nil, func() {a : []string{hello, goconvey}b : []string{hello, goconvey}So(StringSliceEqual(a, b), ShouldBeTrue)})Convey(should return true when a nil b nil, func() {So(StringSliceEqual(nil, nil), ShouldBeTrue)})Convey(should return false when a nil b ! nil, func() {a : []string(nil)b : []string{}So(StringSliceEqual(a, b), ShouldBeFalse)})Convey(should return false when a ! nil b ! nil, func() {a : []string{hello, world}b : []string{hello, goconvey}So(StringSliceEqual(a, b), ShouldBeFalse)})}) } 这样做的好处是看单测结果更为清晰直观 RUN TestStringSliceEqualTestStringSliceEqual should return true when a ! nil b ! nil ✔should return true when a nil b nil ✔should return false when a nil b ! nil ✔should return false when a ! nil b ! nil ✔4 total assertions--- PASS: TestStringSliceEqual (0.00s) PASS ok infra/alg 0.006s二、用GWT结构来描述复杂的测试用例 GWT结构嵌套了三层Convey最外层是Given层用来给定测试用例需要的数据中间一层是When层用来执行被测试的函数方法得到result最内层是Then层用So来对result进行断言看结果是否满足期望。 1 示例代码 示例代码如下 func TestStringSliceEqualIfBothNil(t *testing.T) {Convey(Given two string slice which are both nil, t, func() {var a []string nilvar b []string nilConvey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be true, func() {So(result, ShouldBeTrue)})})}) }func TestStringSliceNotEqualIfNotBothNil(t *testing.T) {Convey(Given two string slice which are both nil, t, func() {a : []string(nil)b : []string{}Convey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be false, func() {So(result, ShouldBeFalse)})})}) }func TestStringSliceNotEqualIfBothNotNil(t *testing.T) {Convey(Given two string slice which are both not nil, t, func() {a : []string{hello, world}b : []string{hello, goconvey}Convey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be false, func() {So(result, ShouldBeFalse)})})}) } 在实际运用中可以结合第一条方法构成四层嵌套来描述一个测试用例 func TestStringSliceEqual(t *testing.T) {Convey(TestStringSliceEqualIfBothNotNil, t, func() {Convey(Given two string slice which are both not nil, func() {a : []string{hello, goconvey}b : []string{hello, goconvey}Convey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be true, func() {So(result, ShouldBeTrue)})})})})Convey(TestStringSliceEqualIfBothNil, t, func() {Convey(Given two string slice which are both nil, func() {var a []string nilvar b []string nilConvey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be true, func() {So(result, ShouldBeTrue)})})})})Convey(TestStringSliceNotEqualIfNotBothNil, t, func() {Convey(Given two string slice which are both nil, func() {a : []string(nil)b : []string{}Convey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be false, func() {So(result, ShouldBeFalse)})})})})Convey(TestStringSliceNotEqualIfBothNotNil, t, func() {Convey(Given two string slice which are both not nil, func() {a : []string{hello, world}b : []string{hello, goconvey}Convey(When the comparision is done, func() {result : StringSliceEqual(a, b)Convey(Then the result should be false, func() {So(result, ShouldBeFalse)})})})})} 2 大坑 注意Given层中最好只有一个Then因为多个Then会导致每执行完一个Then就会再次执行一遍被测试的函数方法导致多次执行的结果可能并不相同从而导致意料之外的错误比如上面示例中的“result : StringSliceEqual(a, b)”。所以如果选择使用GWT的结构那么就要保证W中只有一个T最好也要保证G中只有一个W。 三、自定义断言函数 断言函数So中第二个参数Assertion类型定义 type Assertion func(actual interface{}, expected ...interface{}) string 返回空字符串表示断言成功否则就是断言失败了。 1 自定义断言函数 所以我们自定义断言函数时也要注意这点下面是一个参考示例 func ShouldSummerBeComming(actual interface{}, expected ...interface{}) string {if actual summer expected[0] comming {return } else {return summer is not comming!} } 上述代码中第一个条件表示断言成功其它所有情况都是断言失败。 2 在So中使用自定义的断言函数 func TestSummer(t *testing.T) {Convey(TestSummer, t, func() {So(summer, ShouldSummerBeComming, comming)So(winter, ShouldSummerBeComming, comming)}) } 测试结果 RUN TestSummerTestSummer ✔✘Failures:* /Users/zhangxiaolong/Desktop/D/go-workspace/src/infra/alg/slice_test.go Line 52:summer is not comming!2 total assertions--- FAIL: TestSummer (0.00s) FAIL exit status 1 FAIL infra/alg 0.006s
http://www.w-s-a.com/news/94898/

相关文章:

  • qq钓鱼网站wordpress 企业站模板
  • 推进文明网站建设免费设计公司logo设计
  • 做电脑租赁网站server 2008 网站部署
  • 做网站的公司一年能赚多少钱wordpress作者增加分类插件
  • 苏州尚云网站建设专业摄影网站推荐
  • 020网站开发微信公众号直接链接网站怎么做
  • 学做烘焙的网站某网站注册需要邮箱是怎么弄
  • 网站的特效代码公司网站开发的工作内容
  • 网站制作哪家好商城网站建设预算要多少钱
  • 怎么做律所的官方网站微网站可以做商城吗
  • 通用网站后台管理系统(php版)网站备案ip查询网站查询
  • 制作网站代码吗江阴网站建设推广
  • 汕头建网站wordpress文章网址采集
  • 十大景观设计网站用vue框架做的网站
  • 福建省建设监理网官方网站做外贸网站卖什么东西好
  • 公司做网站排名东莞关键词优化推广
  • 连云港做企业网站公司全网营销与seo
  • 电子毕业设计代做网站wordpress 插件放在那
  • 黄石规划建设局网站怎么做存储网站
  • 网站安装wordpress滨江网站建设
  • 河南官网网站建设一般使用的分辨率显示密度是
  • dedecms新网站 上传到万网的空间宝洁公司网站做的怎么样
  • 网站建设语录优惠券的网站怎么做的
  • 白山市住房和建设局网站有实力高端网站设计地址
  • 沧州网站建设制作设计优化深圳网站自然优化
  • 企业做网站 乐云seowordpress中修改html
  • 网站细节门户wordpress主题下载
  • 全景网站模版wordpress套餐
  • 华为云建网站dw制作一个手机网站模板
  • 定陶菏泽网站建设河北新出现的传染病