关于Gen Z Travel(Z时代)项目系统开发技术方案(成熟技术)

简介: 关于Gen Z Travel(Z时代)项目系统开发技术方案(成熟技术)

测试程序模板
func TestFunction(t *testing.T) {
var tests = []struct { // Test table
in string
out string
}{
{“in1”, “exp1”},
{“in2”, “exp2”},
{“in3”, “exp3”},
...
}

for i, tt := range tests {
    cache := make([]uint32, tt.cacheSize/4)
    generateCache(cache, tt.epoch, seedHash(tt.epoch*epochLength+1))

    dataset := make([]uint32, tt.datasetSize/4)
    generateDataset(dataset, tt.epoch, cache)

    want := make([]uint32, tt.datasetSize/4)
    prepare(want, tt.dataset)

    if !reflect.DeepEqual(dataset, want) {
        t.Errorf("dataset %d: content mismatch: have %x, want %x", i, dataset, want)
    }
}

}

2 测试单个函数
一个测试文件可能有多个测试函数,指定特定的测试函数运行:

go test -test.run TestXXX
1
TestXXX指的是测试函数名称,系统会自动匹配测试函数名称。如一个测试文件中有两个测试函数TestCheckSig和TestCheckSigSm2,那么执行测试命令:

$ go test -test.run TestCheckSig -v
=== RUN TestCheckSig
--- PASS: TestCheckSig (0.00s)
=== RUN TestCheckSigSm2
--- PASS: TestCheckSigSm2 (0.00s)
PASS
ok github.com/bytom/protocol/vm 0.014s
$ go test -test.run TestCheckSigSm2 -v
=== RUN TestCheckSigSm2
--- PASS: TestCheckSigSm2 (0.00s)
PASS
ok github.com/bytom/protocol/vm 0.013s

可见,系统会自动匹配符合TestCheckSig的测试函数名称,因此两个函数都会测试到。这里的匹配只是简单匹配,并非正则匹配。

如果TestXXX不存在,则会返回错误:

$ go test -test.run TestCheckSigSm22 -v
testing: warning: no tests to run
PASS
ok github.com/bytom/protocol/vm 0.008s

3 测试缓存
运行 Go 测试函数的时候,如果已经运行过 go test,则之后如果文件没有发生改变,则就会自动应用上次测试缓存。如下所示:

PASS
ok tester/apitests (cached)

如果不想应用上次测试缓存,则有两种方式删除缓存:

使用 go clean -testcache 清理所有测试结果。
在执行 go test 时添加 -count=1 关闭测试缓存。

相关文章
|
6月前
|
人工智能 区块链 数据安全/隐私保护
Force佛萨奇2.0系统开发(成熟源码)原力佛萨奇系统开发项目方案
佛萨奇系统融合区块链与AI,助力企业高效搭建智能合约,实现业务自动化。通过区块链保证数据安全、不可篡改,智能合约减少人工干预。以下是一个展示其功能的以太坊智能合约代码片段,用于创建一个简易电子商务平台,包括添加商品、购买和查询操作。
|
存储 安全
DAPP/3M互助拆分公排双轨系统开发详细逻辑/案例分析/方案项目/技术分析/源码平台
 DApp是指基于区块练技术的去中心化应用程序,它的特点是去中心化、透明、安全、不可篡改等特点。
|
存储 分布式数据库 区块链
HKT公链系统开发详细方案/案例项目/源码说明
  区块链是一种特殊的分布式数据库,任何服务器都可以成为区块链中的一个节点,且节点之间是平等的,无中心化,区块链中的数据是经过加密存储,已经存储的数据无法修改,可以保证数据的准确性。
|
存储 算法 安全
PAXG子母单双币系统开发/算力分红/智能合约开发/方案项目/详细逻辑/玩法设计/源码成熟
以太坊采用了Solidity作为智能合约语言,Solidity是一门为实现智能合约而创建的高级编程语言,能在允许以太坊程序的节点上运行。
|
敏捷开发 JavaScript 前端开发
接私活福音,validation组件敏捷开发,效率提升5倍!
接私活福音,validation组件敏捷开发,效率提升5倍!
638 0
接私活福音,validation组件敏捷开发,效率提升5倍!
|
存储 区块链 开发者
imtoken/tp/metamask小狐狸钱包系统开发详细案例丨成熟源码
  智能合约dapp开发技术是一种基于区块链技术的开发技术,它可以帮助开发者快速高效地开发出功能强大、可靠性高的dapp(去中心化应用)。dapp定制开发技术则是用于为dapp开发者提供更好的定制化开发服务,帮助开发者更快捷地构建出功能强大、可靠性高的dapp。
|
算法 安全 区块链
马蹄链佛萨奇2.0公排矩阵开发正式版丨马蹄链佛萨奇2.0公排矩阵系统开发(开发规则)及案例源码
  区块链是Web3.0和元宇宙实现的技术基础之一,当前的互联网只能实现信息的传递,尚不能实现价值的流转,而Web3.0能真正实现“价值的连接”。这种价值的流转也成为元宇宙实现的基础。 
sun4.0泰山众筹模式项目系统开发技术讲解放哪(Demo)
sun4.0泰山众筹模式项目系统开发技术讲解放哪(Demo)
104 0
|
前端开发 JavaScript 中间件
利用 Dawn 工程化工具实践 MobX 数据流管理方案
项目在最初应用 MobX 时,对较为复杂的多人协作项目的数据流管理方案没有一个优雅的解决方案,通过对[MobX官方文档](https://mobx.js.org/best/store.html)中针对大型可维护项目最佳实践的学习和应用,把自己的理解抽象出一个简单的todoMVC应用,供大家交流和讨论。
236 0
利用 Dawn 工程化工具实践 MobX 数据流管理方案

热门文章

最新文章