[本文出自天外归云的博客园]
今天有人发帖问,如果以后不在腾讯做程序员了想干嘛。
就让我用一个规范的单测来回答这个问题吧:
// MySelf 我自己
type MySelf struct {
WantToDo []string
}
// Career 职业
type Career struct {
Desc string
}
// WhatMyCareerWillBe 我未来会干嘛
func WhatMyCareerWillBe(myself MySelf) Career {
return BeingATencentProgrammer(myself)
}
// BeingATencentProgrammer 在腾讯做程序员
func BeingATencentProgrammer(myself MySelf) Career {
fmt.Printf("我以后想:%+v", myself.WantToDo)
return Career{
Desc: "每天两点一线写代码",
}
}
// TestWhatMyCareerWillBe 测试WhatMyCareerWillBe
func TestWhatMyCareerWillBe(t *testing.T) {
// 准备测试数据
whatIWantToDoFirst := "开台球厅+自带经营烤冷面、手抓饼、陕西凉皮、长春炒粉、鸡汤豆腐串+酸菜烤牛肉小酒馆"
whatIWantToDoSec := "软件工程各类计算机语言编程培训辅导老师"
myself := MySelf{
WantToDo: []string{whatIWantToDoFirst, whatIWantToDoSec},
}
// Stub BeingATencentProgrammer
gomonkey.ApplyFunc(
BeingATencentProgrammer,
func(_ MySelf) Career {
return Career{
Desc: myself.WantToDo[rand.Intn(len(myself.WantToDo))],
}
})
// 执行待测方法
myCareer := WhatMyCareerWillBe(myself)
// 断言
assert := assert.New(t)
assert.True(myCareer.Desc == whatIWantToDoFirst || myCareer.Desc == whatIWantToDoSec)
}
短短一文,包含了单测的几个标准步骤:
1. 准备数据
2. Mock/Stub/Expect的组合
3. 执行待测方法
4. 断言
本文来自博客园,作者:天外归云,转载请注明原文链接:https://www.cnblogs.com/LanTianYou/p/14544453.html
浙公网安备 33010602011771号