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

相关文章
|
3月前
|
人工智能 区块链 数据安全/隐私保护
Force佛萨奇2.0系统开发(成熟源码)原力佛萨奇系统开发项目方案
佛萨奇系统融合区块链与AI,助力企业高效搭建智能合约,实现业务自动化。通过区块链保证数据安全、不可篡改,智能合约减少人工干预。以下是一个展示其功能的以太坊智能合约代码片段,用于创建一个简易电子商务平台,包括添加商品、购买和查询操作。
|
网络安全 区块链
佛萨奇Metaforce2.0系统开发(成熟源码)
智能合约是一种可编程的自动执行合约,其代码被嵌入到区块链中
|
5月前
|
自然语言处理 监控 搜索推荐
佛萨奇2.0/3.0Metaforce原力元宇宙系统开发步骤逻辑丨方案项目丨案例设计丨成熟技术丨源码功能
佛萨奇(VoZaChi)是一个虚拟助手系统,其发展至2.0和3.0版本会有一些特定需求和逻辑
|
区块链
佛萨奇源码版丨佛萨奇2.0Metaforce系统开发功能方案/案例详细/方案项目/源码程序
  一条完整的区块链,是由众多分布式账本集合而成的一种数据链。那么随着其中某个账本的记录完成,区块也就随之生成。区块的生成过程也就可以理解为是交易的一个记账过程。但光有区块还是不够的,还得需要“链”将所有已有区块都连起来。那么所谓的“链”,就是时间戳技术以及某种智能合约。
|
存储 算法 安全
PAXG子母单双币系统开发/算力分红/智能合约开发/方案项目/详细逻辑/玩法设计/源码成熟
以太坊采用了Solidity作为智能合约语言,Solidity是一门为实现智能合约而创建的高级编程语言,能在允许以太坊程序的节点上运行。
|
Kubernetes 前端开发 API
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
145 0
|
资源调度 前端开发 JavaScript
meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解
meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解
122 0
|
存储 人工智能 区块链
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
253 16
下一篇
无影云桌面