黑龙江 建设监理协会网站惠城网站建设费用

bicheng/2026/1/18 4:57:03/文章来源:
黑龙江 建设监理协会网站,惠城网站建设费用,佛山优化网站排名收费,上海线上引流推广一、尽量用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.mzph.cn/bicheng/89324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人做游戏下载网站侵权吗dw网站轮播效果怎么做

作为定位“开发辅助”的工具,我也一直在想如何让工具更有效率。是更快的打开速度还是更丰富的功能?路遥工具箱 V3 版本的界面布局是偏 BS 后台系统的风格:可折叠的树形菜单用来拓宽用户的操作区域,多标签的功能布局让软件保持整洁…

wordpress菜单和导航栏佛山企业网站排名优化

反射 什么是反射: ​ 反射是Java语法的一种高级特性,在“运行期间”对Java的类型信息进行检查,操作处理。例如:加载JDBC驱动类,Mybatis动态处理resultType,Spring根据配置创建Bean对象等使用场景都用反射…

网站建设报价分析wordpress存储插件

随着信息技术的迅猛发展和应用范围的不断扩大,我们日常生活中的许多方面已经与信息技术密不可分。而在信息安全领域中,密钥的安全存储显得尤为重要。本文将探讨密钥安全存储的必要性、相关技术和实践方案,并提出一些解决方案。 一、密钥安全存…

建设工程材料网站一个网站可以绑定几个域名

之前一直用坚果云的webdav功能做obsidian的跨平台同步(Windows,Ubuntu,iOS),但是今天在新的工作机上部署obsidian时,发现一次同步的文件数量超过了坚果云的限制(付费用户好像是500次&#xff09…

沈阳网站制作找网势科技展示型网站设计方案

Nginx和Ribbon的区别 1. Nginx服务器端负载均衡: 1、Nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。即请求有nginx服务器端进行转发。 3、Nginx是服务端的负载均衡,Ribbon是客户端…

上海简站商贸有限公司著名的国外设计网站有哪些

一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”&#x…

贵阳品牌网站建设公司怎么做招聘网站赚钱

首先,NIO是什么?NIO全称是Java NIO(New IO),它是一种新的I/O模型,相对于传统的I/O模型,NIO具有更高的性能和更低的延迟。在NIO中,我们使用通道(Channels)和缓…

58网站建设网站建设服务器和空间费

ZedBoard学习实例1 VGA显示彩条 ZedBoard学习实例1 VGA显示彩条参考文章改进 ZedBoard学习实例1 VGA显示彩条 参考文章 彩条控制verilog代码 主体参考了该文章的代码,文中还介绍了相关的电路图,还有ZedBoard的手册内容。19201080分辨率显示器的参数 针…

怎么键卖东西的网站商标查询官网

医学生别拖了,今年秋招已经过去一波热度了,赶早不赶晚!在筹备第二轮秋招以及明年的春招的医学生一定要注意以下事项。 1.清晰目标 搜集秋招讯息 一定要早点多做准备,想清楚未来的目标,是继续深造还是就业做医生或者是…

网站开发职业定位网站基础知识

前言:StarRocks原名DorisDB,是新一代极速全场景MPP数据库。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 连接的多种源。一是通过这个 CDC 或者说通过这个 ETL 的方式去灌到这个 StarRocks 里面;二是还可以去直接的和这些老的 kafka 或…

昆山设计网站公司四川专做餐饮的网站

插件(Plugins): 插件是 wepback 的支柱功能。在你使用 webpack 配置时,webpack 自身也构建于同样的插件系统上! 插件目的在于解决 loader 无法实现的其他事 剖析: webpack 插件是一个具有 apply 属性的 JavaScript 对象。 app…

上海市做网站的公司网站教育培训机构十大排名

组相同类型数据的集合 java中数组特点: 1.数组在内存中是连续分配的 2.在创建数组时,要指明数组的长度 3.访问数组,通过索引,从0开始,到数组长度-1 功能: 1.插入:向索引位置插入一个元素&#…

电子商务网站建设 教材手机应用开发平台

​​​​​​文章中对hive表中的数据导出 多种方法目录 方式一:insert导出 方式二:hive shell 命令导出 方式三:export导出到HDFS上 目标: 将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hd…

乐山市住房和城乡规划建设局网站wordpress凭密码

[NISACTF 2022]easyssrf wp ssrf 的题目,提示了会使用 curl 连接输入的网站并返回响应包。 测试连接百度 直接在输入框中写 www.baidu.com 是无法连接的,需要在前面加入 http 或者 https ,因为 curl 的使用方式就是: curl htt…

加强信息网站建设软件公司取名

报错截图 解决方案 第一步:编辑配置,改为想用的jdk版本 第二步:文件--->项目结构,改为对应的SDK 第三步:文件--->设置--->构建、执行、部署--->编译器--->Java编译器,修改目标字节码版本 第…

深圳 赢客创想网络技术股份有限公司 网站建设access做网站数据方法

前言 自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。…

想做电商怎么找货源windows优化大师

1.背景知识 在讲SVD之前,我还是想先回到基于物品相似的协同过滤算法。这个算法基本思想是找出一个用户有过正反馈的物品的相似的物品来给其作为推荐。其公式为: 其中 rui 表示预测用户u对物品i的喜爱程度。wij 是物品i,j之间的相似度&#xf…

赤峰市做网站建设的公司什么网站做外贸最好

一、源码特点 PHP 公交公司充电桩管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码下载 https://download.csdn.net/download/qq_41221322/88220946 论文下…

网站搜索 代码网站一般的后台

最近在使用SpringSecurityJWT实现认证授权的时候,出现Redis在反序列化userDetails的异常。通过实践发现,使用不同的序列化方法和不同的fastJson版本,异常信息各不相同。所以特地记录了下来。 一、项目代码 先来看看我项目中redis相关配置信息…

网站加速器quickq网页设计与网站建设项目教程

目录 什么是策略模式 应用场景 业务场景实现 抽象类 实现类 Context上下文 测试类 策略模式的优缺点 什么是策略模式 他将定义的算法家族、分别封装起来,让他们之间可以相互替换,从而让算法的变化不会影响到使用算法的用户。 策略模式使用的就是…