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

室内设计招聘网站有哪些营销策划公司经营范围

室内设计招聘网站有哪些,营销策划公司经营范围,微信app小程序开发,乌海网站seo快速开始 GoConvey是一个完全兼容官方Go Test的测试框架#xff0c;一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高#xff0c;闲话少说#xff0c;先看一个example#xff1a; package utils import (. github.com/smartystreets/goconvey…快速开始 GoConvey是一个完全兼容官方Go Test的测试框架一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高闲话少说先看一个example package utils import (. github.com/smartystreets/goconvey/conveytesting )func TestSpec(t *testing.T) {Convey(Given some integer with a starting value, t, func() {x : 1Convey(When the integer is incremented, func() {xConvey(The value should be greater by one, func() {So(x, ShouldEqual, 2)})})}) }看着复杂, 一层层的嵌套如果你使用IDE的话你可以点到源码里面看一下其方法注释其实已经说的非常清楚了这里摘取部分看一下 // Convey is the method intended for use when declaring the scopes of // a specification. Each scope has a description and a func() which may contain // other calls to Convey(), Reset() or Should-style assertions. Convey calls can // be nested as far as you see fit. // // IMPORTANT NOTE: The top-level Convey() within a Test method // must conform to the following signature: // // Convey(description string, t *testing.T, action func()) // // All other calls should look like this (no need to pass in *testing.T): // // Convey(description string, action func())这个用法相对简单了Convey定义了一个局部的作用域在这个作用域里面我们可以定义变量调用方法然后重复继续这个操作low-level的Convey会继承top-level的变量。 了解之后我们来扩展一下这个例子 func TestSpec(t *testing.T) {Convey(Given some integer with a starting value, t, func() {x : 1y : 10Convey(When the integer is incremented, func() {xConvey(The value should be greater by one, func() {So(x, ShouldEqual, 2)})})Convey(When x y, func() {if x y {x x ySo(x, ShouldBeGreaterThan, y)}})}) }非常简单当然这里我们并没有测试任何函数或方法下面咱们写一个函数真正测试一下假设有下面的方法 func Div(a, b int) (int, error) {if b 0 {return 0, errors.New(can not div zero)}return a / b, nil }使用GoConvey的话测试代码可以这么写 func TestDiv(t *testing.T) {const X 10Convey(Normal Result, t, func() {res, err : Div(X, 2)So(res, ShouldEqual, 5)So(err, ShouldBeNil)Convey(Extend Scope, func() {res, err : Div(res, 2)So(res, ShouldEqual, 2)So(err, ShouldBeNil)})})Convey(Error Result, t, func() {res, err : Div(X, 0)So(res, ShouldEqual, 0)So(err, ShouldNotBeNil)}) }有人可能会觉得这和官方的没多大区别相当于多加了一个注释可以对每一个测试用例标识但是不仅仅如此这个库还提供了大量增强的Assertions可以非常方便的对字符串、slice、map结果进行断言测试具体的话可以查看一下文档或者点进去看看源码注释这些源码注释基本上已经写的非常清楚了。 Web UI 此外框架还提供了一个Web端的UI界面可以非常方便的查看测试覆盖和运行情况还可以自动运行测试执行goconvey命令就可以启动服务快试一试吧虽然说像Goland这样的IDE也提供了GUI工具查看测试覆盖率但是这个更加方便 另外这个框架还提供了自定义Assertions的功能使用起来也很方便有一个通用的模板 func shoulddo-something(actual interface{}, expected ...interface{}) string {if some-important-condition-is-met(actual, expected) {return // empty string means the assertion passed}return some descriptive message detailing why the assertion failed... }举个例子这里定义一个试试 func shouldNotGreatThan100(actual interface{}, expected ...interface{}) string {if actual.(int) 100 {return too big than 100} else {return } }定义通用的逻辑 有时候测试会需要做一些准备工作而且是重复的比如说一些初始化操作这时候就可以定义一个函数完成这件事不必每次测试重复做官方文档里面举了一个数据库测试的例子每次测试前开启事务测试结束后回滚事务这里贴一下官方的example大家看一下很容易理解 package main import (database/sqltesting_ github.com/lib/pq. github.com/smartystreets/goconvey/convey ) func WithTransaction(db *sql.DB, f func(tx *sql.Tx)) func() {return func() {tx, err : db.Begin()So(err, ShouldBeNil)Reset(func() {/* Verify that the transaction is alive by executing a command */_, err : tx.Exec(SELECT 1)So(err, ShouldBeNil)tx.Rollback()})/* Here we invoke the actual test-closure and provide the transaction */f(tx)} } func TestUsers(t *testing.T) {db, err : sql.Open(postgres, postgres://localhost?sslmodedisable)if err ! nil {panic(err)}Convey(Given a user in the database, t, WithTransaction(db, func(tx *sql.Tx) {_, err : tx.Exec(INSERT INTO Users (id, name) VALUES (1, Test User))So(err, ShouldBeNil)Convey(Attempting to retrieve the user should return the user, func() {var name stringdata : tx.QueryRow(SELECT name FROM Users WHERE id 1)err data.Scan(name)So(err, ShouldBeNil)So(name, ShouldEqual, Test User)})})) } /* Required table to run the test: CREATE TABLE public.Users ( id INTEGER NOT NULL UNIQUE, name CHARACTER VARYING( 2044 ) NOT NULL ); */
http://www.sadfv.cn/news/253850/

相关文章:

  • 网站建设大作业论文做网站公司 陕西渭南
  • 中山网站排名微信运营商是哪个公司
  • 常用的网站类型有哪些长沙网站制作费用
  • 网站的链接建设phpstudy wordpress
  • 征集二级网站建设意见 通知云主机可以用来做什么
  • 中国空间站组成部分泉州刚刚发生的重大新闻
  • 优酷视频接到网站怎么做移动云网站建设
  • 常州网站建设公司服务网络架构有哪几层
  • 校园在线网站怎么做有新的wordpress更新是英文版
  • 洛夕网站建设网站建设和管理是教什么
  • 加拿大计划网站怎么做昆明网站快速优化排名
  • 基于python的网站开发项目怎么做网站 教学
  • 福州网站建设思企苏南网站建设
  • 高端手机网站建设需要多少钱百度指数网
  • 子商务网站建设实践南京做网站seo
  • 制作企业网站的app网站的栏目有什么名字
  • 重庆网站建设公司招聘python制作视频网站开发
  • 网站如何建设二级域名代理土特产直营建设网站的调研
  • 网站网站建设企业青岛做网络推广的公司有哪些
  • 做电气的什么招聘网站好网络规划设计师考试内容有哪些
  • 广州做网站的网络公司排名企业网站推广最有效的方法
  • 郑州网站建设服务商制作商品网站
  • 厚瑜珠海网站建设企业信息公示网查询
  • 南孚电池网站建设北京建设工程交易网站官网
  • 网站 可信验证网站技术建设维护技术论文
  • 哪些网站可以做国外生意玉林英文网站建设
  • 郑州网站公司排名网页设计基础项目考核
  • 网站纯色背景图怎么做江苏网站seo
  • 网站信息架构公司邮箱怎么查
  • 郑州网站建设企业推荐wordpress 商城插件