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

相关文章
|
4月前
|
人工智能 区块链 数据安全/隐私保护
Force佛萨奇2.0系统开发(成熟源码)原力佛萨奇系统开发项目方案
佛萨奇系统融合区块链与AI,助力企业高效搭建智能合约,实现业务自动化。通过区块链保证数据安全、不可篡改,智能合约减少人工干预。以下是一个展示其功能的以太坊智能合约代码片段,用于创建一个简易电子商务平台,包括添加商品、购买和查询操作。
|
6月前
|
监控 Unix
BSC丨Solana丨AVAX丨LUNA公链游戏系统开发规则丨链游系统开发(结构模型)
该代码段是用于BSC、Solana、AVAX和LUNA公链游戏系统的开发规则,涉及链游系统开发的结构模型。主要包含三个静态保护函数:`monitorWorkersForWindows`用于监控工作进程,`exitAndClearAll`负责退出并清理所有进程,而`reload`函数执行重载操作。在主进程,`reload`发送信号给可重载的工作进程,并在指定时间后尝试杀死未退出的进程。在子进程中,它触发`onWorkerReload`回调并根据`reloadable`属性停止所有工作进程。
|
6月前
|
自然语言处理 监控 搜索推荐
佛萨奇2.0/3.0Metaforce原力元宇宙系统开发步骤逻辑丨方案项目丨案例设计丨成熟技术丨源码功能
佛萨奇(VoZaChi)是一个虚拟助手系统,其发展至2.0和3.0版本会有一些特定需求和逻辑
|
区块链
佛萨奇源码版丨佛萨奇2.0Metaforce系统开发功能方案/案例详细/方案项目/源码程序
  一条完整的区块链,是由众多分布式账本集合而成的一种数据链。那么随着其中某个账本的记录完成,区块也就随之生成。区块的生成过程也就可以理解为是交易的一个记账过程。但光有区块还是不够的,还得需要“链”将所有已有区块都连起来。那么所谓的“链”,就是时间戳技术以及某种智能合约。
|
存储 算法 安全
PAXG子母单双币系统开发/算力分红/智能合约开发/方案项目/详细逻辑/玩法设计/源码成熟
以太坊采用了Solidity作为智能合约语言,Solidity是一门为实现智能合约而创建的高级编程语言,能在允许以太坊程序的节点上运行。
|
存储 人工智能 区块链
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
Meta Force佛萨奇2.0元宇宙项目系统开发技术讲解方案
262 16
|
资源调度 前端开发 JavaScript
meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解
meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解
128 0
|
存储 区块链 开发者
imtoken/tp/metamask小狐狸钱包系统开发详细案例丨成熟源码
  智能合约dapp开发技术是一种基于区块链技术的开发技术,它可以帮助开发者快速高效地开发出功能强大、可靠性高的dapp(去中心化应用)。dapp定制开发技术则是用于为dapp开发者提供更好的定制化开发服务,帮助开发者更快捷地构建出功能强大、可靠性高的dapp。
|
算法 IDE 区块链
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
179 0
下一篇
无影云桌面