• Go之单元测试


     
      go单元测试需要按照gotest的规范来编写:
      1、文件名必须以xx_test.go命名
      2、方法必须是Test[^a-z]开头
      3、方法参数必须 t *testing.T
     
      在运行gotest的时候出现
        ~/Desktop/goproject/src [no test files]
      这里需要注意的是,我的测试文件在util包中,而我运行的路径是~/Desktop/goproject/src 
        
      所以,我改变下目录,在~/Desktop/goproject/src/util/目录下运行gotest 就ok了
      输出结果是
    	PASS
    	ok  	_/C_/Users/xycui/Desktop/goproject/src/util	0.172s
    	
    	testing: warning: no tests to run
    

     那么,这里就推荐使用测试包来做单元测试了

      

    这样,测试那个包就在哪个包下运行go test就ok了
    代码如下
    Queue代码如下:
     
    package util
    
    type Queue struct {
    	elements []interface{}
    }
    
    func NewQueue() *Queue {
    	return &Queue{make([]interface{}, 0)}
    }
    
    func (self *Queue) Push(e interface{}) {
    	self.elements = append(self.elements, e)
    }
    
    func (self *Queue) Length() int {
    	return len(self.elements)
    }
    
    func (self *Queue) Pull() interface{} {
    	temp := self.elements[0]
    	self.elements = self.elements[1:]
    	return temp
    }
    

     单元测试代码如下:

    package util_test
    
    import (
    	"../util"
    	"testing"
    )
    
    func Testqueue(t *testing.T) {
    	var queue = util.NewQueue()
    	queue.Push("1")
    	queue.Push("1")
    	queue.Push("1")
    	queue.Push("1")
    
    	// queue := util.NewQueue()
    	// queue.Push("string1")
    	// queue.Push("string2")
    	// queue.Push("string3")
    	// fmt.Println(queue)
    	// fmt.Println(queue.Pull())
    	// fmt.Println(queue.Length())
    	if queue.Length() != 4 {
    		t.Error("1")
    	}
    }
    

      

  • 相关阅读:
    人见人爱a+b,算出两个时间的和
    远程推送原理
    iOS中的定时器
    四大对象
    核心动画类关系图
    无沙盒缓存原理
    应用程序的生命周期
    同样明文同样算法得到不同密码原理
    线程状态
    iOS中的几个重要方法
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/4864269.html
Copyright © 2020-2023  润新知