1. 传统方法的缺点
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200126224244228-2119310358.png)
2. 单元测试
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200126224347893-773133775.png)
package cal
//一个被测试函数
func addUpper(n int) int {
res := 0
for i := 1; i <= n - 1; i++ {
res += i
}
return res
}
//求两个数的查
func getSub(n1 int, n2 int) int {
return n1 - n2
}
package cal
import (
"fmt"
"testing" //引入go 的testing框架包
)
//编写要给测试用例,去测试addUpper是否正确
func TestAddUpper(t *testing.T) {
//调用
res := addUpper(10)
if res != 55 {
//fmt.Printf("AddUpper(10) 执行错误,期望值=%v 实际值=%v\n", 55, res)
t.Fatalf("AddUpper(10) 执行错误,期望值=%v 实际值=%v\n", 55, res)
}
//如果正确,输出日志
t.Logf("AddUpper(10) 执行正确...")
}
func TestHello(t *testing.T) {
fmt.Println("TestHello被调用..")
}
package cal
import (
_ "fmt"
"testing" //引入go 的testing框架包
)
//编写要给测试用例,去测试addUpper是否正确
func TestGetSub(t *testing.T) {
//调用
res := getSub(10, 3)
if res != 7 {
//fmt.Printf("AddUpper(10) 执行错误,期望值=%v 实际值=%v\n", 55, res)
t.Fatalf("getSub(10, 3) 执行错误,期望值=%v 实际值=%v\n", 7, res)
}
//如果正确,输出日志
t.Logf("getSub(10, 3) 执行正确!!!!...")
}
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200127004218120-159109210.png)
3. 总结
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200126233317352-953841460.png)
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200126233733176-1712748757.png)
4. 示意图
![](https://img2018.cnblogs.com/i-beta/1498903/202001/1498903-20200126235226813-1142409164.png)