关于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 关闭测试缓存。

相关文章
|
存储 区块链 安全
OP链上智能合约质押项目系统开发(项目方案)技术原理
去中心化金融需要去中心化的发行方式与之匹配,从而完善去中心化金融闭环
|
存储 算法 安全
NewFi去中心化项目系统开发|NewFi质押LP模式(成熟案例)
智能合约存储在区块链分布式网络中function transfer
|
算法 安全 区块链
OPsea CeDefi智能合约分红系统开发(开发方案)/案例项目/方案设计/源码功能
  区块链(Blockchain)是一种去中心化的分布式账本技术,它通过使用密码学算法、点对点网络和共识机制等技术手段,实现了对数据的不可篡改、可追溯和去中心化的管理。区块链中的“链”指的是由一系列区块组成的链式结构,每个区块包含着一些交易记录和一些元数据,同时还包括着上一个区块的哈希值。
|
存储 算法 安全
PAXG子母单双币系统开发/算力分红/智能合约开发/方案项目/详细逻辑/玩法设计/源码成熟
以太坊采用了Solidity作为智能合约语言,Solidity是一门为实现智能合约而创建的高级编程语言,能在允许以太坊程序的节点上运行。
IPP swap孵化器算力分红系统开发详细技术案例/方案逻辑/源码说明
  IPPswap孵化器作为数字资产交易平台,具有很多的特点和优势。去中心化管理模式、联盟链技术、多元化数字资产交易等特点和优势,未来,IPPswap孵化器将继续推动数字资产交易市场的发展,并为用户提供更加智能、便捷和高效的数字资产交易服务,同时会不断挖掘和发展更多的潜力和机遇,成为数字资产交易市场的重要生力军。
|
Kubernetes 前端开发 API
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
163 0
|
存储 人工智能 区块链
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
268 16
|
算法 IDE 区块链
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
184 0
|
人工智能
量化合约系统开发(案例项目)丨合约量化系统开发(方案成熟)
 Artificial intelligence(AI)refers to the ability of computer systems to perform tasks similar to human intelligence.It is a complex technology,which constantly adjusts and improves its own algorithm by inputting a large amount of data into the algorithm for learning,so as to continuously optimize i