mirror of https://github.com/q191201771/lal.git
提交信息:
* rtmp音频直接转发,不等待视频 * 新增 /pkg/util/assert 用于替换单元测试中的 stretchr/testify/assert * 补充一些单元测试pull/200/head
parent
8dc82bf27a
commit
0437993a24
@ -0,0 +1,53 @@
|
|||||||
|
// Package assert 提供了单元测试时的断言功能
|
||||||
|
//
|
||||||
|
// 代码参考了 https://github.com/stretchr/testify
|
||||||
|
//
|
||||||
|
package assert
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"reflect"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TestingT interface {
|
||||||
|
Errorf(format string, args ...interface{})
|
||||||
|
}
|
||||||
|
|
||||||
|
func Equal(t TestingT, expected interface{}, actual interface{}, msg string) {
|
||||||
|
if !equal(expected, actual) {
|
||||||
|
t.Errorf("%s expected=%+v, actual=%+v", msg, expected, actual)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func isNil(actual interface{}) bool {
|
||||||
|
if actual == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
v := reflect.ValueOf(actual)
|
||||||
|
k := v.Kind()
|
||||||
|
if k == reflect.Chan || k == reflect.Map || k == reflect.Ptr || k == reflect.Interface || k == reflect.Slice {
|
||||||
|
return v.IsNil()
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func equal(expected, actual interface{}) bool {
|
||||||
|
if expected == nil {
|
||||||
|
return isNil(actual)
|
||||||
|
}
|
||||||
|
|
||||||
|
exp, ok := expected.([]byte)
|
||||||
|
if !ok {
|
||||||
|
return reflect.DeepEqual(expected, actual)
|
||||||
|
}
|
||||||
|
|
||||||
|
act, ok := actual.([]byte)
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
//if exp == nil || act == nil {
|
||||||
|
// return exp == nil && act == nil
|
||||||
|
//}
|
||||||
|
return bytes.Equal(exp, act)
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package assert
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
//import aaa "github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
func TestEqual(t *testing.T) {
|
||||||
|
Equal(t, nil, nil, "fxxk.")
|
||||||
|
Equal(t, 1, 1, "fxxk.")
|
||||||
|
Equal(t, "aaa", "aaa", "fxxk.")
|
||||||
|
var ch chan struct{}
|
||||||
|
Equal(t, nil, ch, "fxxk.")
|
||||||
|
var m map[string]string
|
||||||
|
Equal(t, nil, m, "fxxk.")
|
||||||
|
var p *int
|
||||||
|
Equal(t, nil, p, "fxxk.")
|
||||||
|
var i interface{}
|
||||||
|
Equal(t, nil, i, "fxxk.")
|
||||||
|
var b []byte
|
||||||
|
Equal(t, nil, b, "fxxk.")
|
||||||
|
|
||||||
|
Equal(t, true, isNil(nil), "fxxk.")
|
||||||
|
Equal(t, false, isNil("aaa"), "fxxk.")
|
||||||
|
Equal(t, false, equal([]byte{}, "aaa"), "fxxk.")
|
||||||
|
Equal(t, true, equal([]byte{}, []byte{}), "fxxk.")
|
||||||
|
Equal(t, true, equal([]byte{0, 1, 2}, []byte{0, 1, 2}), "fxxk.")
|
||||||
|
}
|
Loading…
Reference in New Issue