本文整理汇总了Golang中github.com/issue9/assert.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestOptions_Init
func TestOptions_Init(t *testing.T) {
a := assert.New(t)
o := &Options{Type: "html"}
a.Error(o.Init()) // 未指定 dir
o.Dir = "./"
a.NotError(o.Init())
// 模板不存在
o.Template = "./not_exists"
a.Error(o.Init())
// 未指定 template
o.Type = "html+"
o.Template = ""
a.Error(o.Init())
// port 未指定
o.Type = "html+"
o.Template = "./static"
a.Error(o.Init())
// 修正 port
o.Port = "1234"
a.NotError(o.Init())
a.Equal(":1234", o.Port)
}
开发者ID:caixw,项目名称:apidoc,代码行数:28,代码来源:output_test.go
示例2: TestResultFields
func TestResultFields(t *testing.T) {
a := assert.New(t)
allow := []string{"col1", "col2", "col3"}
//
//ResultFields(r *http.Request, allow []string) ([]string, bool)
r, err := http.NewRequest(http.MethodPut, "/test", nil)
a.NotError(err).NotNil(r)
// 非 GET 方法
ret, ok := ResultFields(r, allow)
a.False(ok).Nil(ret)
// 非 GET 方法,即使设置 Method 方法
r.Header.Set("X-Result-Fields", "col1, col2")
ret, ok = ResultFields(r, allow)
a.False(ok).Nil(ret)
// 指定的字段都是允许的字段
r.Method = http.MethodGet
ret, ok = ResultFields(r, allow)
a.True(ok).Equal([]string{"col1", "col2"}, ret)
// 包含不允许的字段
r.Header.Set("X-Result-Fields", "col1,col2, col100 ,col101")
ret, ok = ResultFields(r, allow)
a.False(ok).Equal([]string{"col100", "col101"}, ret)
// 未指定 X-Result-Fields
r.Header.Del("X-Result-Fields")
ret, ok = ResultFields(r, allow)
a.True(ok).Nil(nil)
}
开发者ID:issue9,项目名称:web,代码行数:34,代码来源:web_test.go
示例3: TestMergeNest
func TestMergeNest(t *testing.T) {
a := assert.New(t)
v1 := &s2{S2: "1", S3: &s1{}}
v2 := &s2{S2: "2", S3: &s1{ID: 2, hide: 2}}
// deep 为true时,会依次赋值子元素,hide不可导出,所以被忽略
a.NotError(merge(true, reflect.ValueOf(v1).Elem(), reflect.ValueOf(v2).Elem()))
a.Equal(v1.ID, 0).Equal(v1.S3.ID, 2).Equal(v1.S3.hide, 0)
// deep为false时,会将整个v2.S3赋给给v1.S3
a.NotError(merge(false, reflect.ValueOf(v1).Elem(), reflect.ValueOf(v2).Elem()))
a.Equal(v1.ID, 0).Equal(v1.S3.ID, 2).Equal(v1.S3.hide, 2)
// 自动初始化v1.S3
v1.S3 = nil
a.NotError(merge(true, reflect.ValueOf(v1).Elem(), reflect.ValueOf(v2).Elem()))
a.Equal(v1.ID, 0).Equal(v1.S3.ID, 2).Equal(v1.S3.hide, 0)
// 不会初始化v1.S3
v1.S3 = nil
v2.S3 = nil
a.NotError(merge(true, reflect.ValueOf(v1).Elem(), reflect.ValueOf(v2).Elem()))
a.Equal(v1.ID, 0).Nil(v1.S3)
}
开发者ID:issue9,项目名称:utils,代码行数:25,代码来源:merge_test.go
示例4: TestInitFormXMLString
func TestInitFormXMLString(t *testing.T) {
a := assert.New(t)
// 重新注册以下用到的writer
clearInitializer()
a.True(Register("debug", logContInitializer), "注册debug时失败")
a.True(Register("buffer", bufferInitializer), "注册buffer时失败")
a.True(Register("debugW", debugWInit), "注册debugW时失败")
xml := `
<?xml version="1.0" encoding="utf-8" ?>
<logs>
<debug prefix="[DEBUG]">
<buffer size="10">
<debugW />
</buffer>
</debug>
</logs>
`
debugW.Reset()
conts.Add(infoW) // 触发initFromXmlString中的重置功能
a.True(conts.Len() == 1)
a.NotError(InitFromXMLString(xml))
a.True(critical == nil) // InitFromXMLString会重置所有的日志指向
a.True(CRITICAL() == nil) // InitFromXMLString会重置所有的日志指向
Debug("abc")
a.True(debugW.Len() == 0) // 缓存未达10,依然为空
Allf("def\n")
a.True(debugW.Len() == 0) // 缓存未达10,依然为空
// 测试Flush
Flush()
a.True(debugW.Len() > 0)
}
开发者ID:jockchou,项目名称:logs,代码行数:35,代码来源:logs_test.go
示例5: TestConfig_buildHeaders
func TestConfig_buildHeaders(t *testing.T) {
a := assert.New(t)
fh := func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("123"))
}
cfg := &Config{Headers: map[string]string{"Server": "test"}}
h := cfg.buildHeader(http.HandlerFunc(fh))
r, err := http.NewRequest("GET", "", nil)
a.NotError(err).NotNil(r)
w := httptest.NewRecorder()
h.ServeHTTP(w, r)
a.Equal(w.Header().Get("Server"), "test")
// 为空
cfg = &Config{Headers: map[string]string{}}
h = cfg.buildHeader(http.HandlerFunc(fh))
r, err = http.NewRequest("GET", "", nil)
a.NotError(err).NotNil(r)
w = httptest.NewRecorder()
h.ServeHTTP(w, r)
a.Equal(w.Header().Get("Server"), "")
}
开发者ID:issue9,项目名称:web,代码行数:27,代码来源:config_test.go
示例6: TestExtsIndex
func TestExtsIndex(t *testing.T) {
a := assert.New(t)
a.Equal(extsIndex[".cpp"], "cpp")
a.Equal(extsIndex[".php"], "php")
a.Equal(extsIndex[".go"], "go")
}
开发者ID:giserh,项目名称:apidoc,代码行数:7,代码来源:langs_test.go
示例7: TestLexer_readN
func TestLexer_readN(t *testing.T) {
a := assert.New(t)
l := newLexer([]rune("line1\n @api line2 \n"), 100, "file.go")
a.NotNil(l)
words, err := l.readN(1, "@api")
a.NotError(err).Equal(words, []string{"line1"})
l.match("@api")
words, err = l.readN(1, "@api") // 行尾并没有@api,匹配eof
a.NotError(err).Equal(words, []string{"line2"})
// 多词匹配
l = newLexer([]rune("word1 word2 word3 word4\n @api word5 word6 \n"), 100, "file.go")
words, err = l.readN(2, "\n")
a.NotError(err).Equal(words, []string{"word1", "word2 word3 word4"})
l.match("@api")
words, err = l.readN(5, "\n")
a.Error(err)
l = newLexer([]rune("word1 word2 word3 word4\n"), 100, "file.go")
words, err = l.readN(1, "\n")
a.NotError(err).Equal(words, []string{"word1 word2 word3 word4"})
}
开发者ID:giserh,项目名称:apidoc,代码行数:26,代码来源:lex_test.go
示例8: TestTag_readLine
func TestTag_readLine(t *testing.T) {
a := assert.New(t)
l := &tag{data: []rune(" line1\n line2 \n")}
a.Equal(l.readLine(), []rune("line1"))
a.Equal(l.readLine(), []rune("line2"))
}
开发者ID:caixw,项目名称:apidoc,代码行数:7,代码来源:lexer_test.go
示例9: TestTag_readEnd
func TestTag_readEnd(t *testing.T) {
a := assert.New(t)
l := &tag{data: []rune(" line1\n line2 \n")}
a.Equal(l.readEnd(), "line1\n line2 \n")
a.Equal(l.readEnd(), "")
}
开发者ID:caixw,项目名称:apidoc,代码行数:7,代码来源:lexer_test.go
示例10: TestBlock_endMComment
func TestBlock_endMComment(t *testing.T) {
a := assert.New(t)
b := &block{
Type: blockTypeSComment,
Begin: "/*",
End: "*/",
}
l := &lexer{
data: []byte("comment1\n*/"),
}
rs, found := b.endMComments(l)
a.True(found).Equal(string(rs), "comment1\n")
// 多个注释结束符
l = &lexer{
data: []byte("comment1\ncomment2*/*/"),
}
rs, found = b.endMComments(l)
a.True(found).Equal(string(rs), "comment1\ncomment2")
// 空格开头
l = &lexer{
data: []byte("\ncomment1\ncomment2*/*/"),
}
rs, found = b.endMComments(l)
a.True(found).Equal(string(rs), "\ncomment1\ncomment2")
// 没有注释结束符
l = &lexer{
data: []byte("comment1"),
}
rs, found = b.endMComments(l)
a.False(found).Nil(rs)
}
开发者ID:caixw,项目名称:apidoc,代码行数:35,代码来源:block_test.go
示例11: TestQuery_Int
func TestQuery_Int(t *testing.T) {
a := assert.New(t)
form := url.Values(map[string][]string{
"q1": []string{"1"},
"q2": []string{"21", "22"},
"q4": []string{"four"},
})
r := &http.Request{Form: form}
q := &Query{
abortOnError: false,
errors: map[string]string{},
values: make(map[string]value, len(form)),
request: r,
}
q1 := q.Int("q1", 12)
msgs := q.Parse()
a.Equal(len(msgs), 0).Equal(*q1, 1)
q2 := q.Int64("q2", 12)
msgs = q.Parse()
a.Equal(len(msgs), 0).Equal(*q2, 21)
q3 := q.Int64("q3", 32)
msgs = q.Parse()
a.Equal(len(msgs), 0).Equal(*q3, 32)
// 出错的情况下,返回默认值
q4 := q.Int64("q4", 32)
msgs = q.Parse()
a.Equal(len(msgs), 1).Equal(*q4, 32)
}
开发者ID:issue9,项目名称:web,代码行数:34,代码来源:query_test.go
示例12: TestBlock_endSComment
func TestBlock_endSComment(t *testing.T) {
a := assert.New(t)
b := &block{
Type: blockTypeSComment,
Begin: `//`,
}
l := &lexer{
data: []byte("comment1\n"),
}
rs, err := b.endSComments(l)
a.NotError(err).Equal(string(rs), "comment1\n")
// 没有换行符,则自动取到结束符。
l = &lexer{
data: []byte("comment1"),
}
rs, err = b.endSComments(l)
a.NotError(err).Equal(string(rs), "comment1")
// 多行连续的单行注释。
l = &lexer{
data: []byte("comment1\n//comment2\n //comment3"),
}
rs, err = b.endSComments(l)
a.NotError(err).Equal(string(rs), "comment1\ncomment2\ncomment3")
// 多行不连续的单行注释。
l = &lexer{
data: []byte("comment1\n // comment2\n\n //comment3\n"),
}
rs, err = b.endSComments(l)
a.NotError(err).Equal(string(rs), "comment1\n comment2\n")
}
开发者ID:caixw,项目名称:apidoc,代码行数:34,代码来源:block_test.go
示例13: TestBlock_endString
func TestBlock_endString(t *testing.T) {
a := assert.New(t)
b := &block{
Type: blockTypeString,
Begin: `"`,
End: `"`,
Escape: "\\",
}
l := &lexer{
data: []byte(`text"`),
}
rs, ok := b.endString(l)
a.True(ok).Nil(rs)
// 带转义字符
l = &lexer{
data: []byte(`te\"xt"`),
}
rs, ok = b.endString(l)
a.True(ok).
Nil(rs).
Equal(l.pos, len(l.data))
// 找不到匹配字符串
l = &lexer{
data: []byte("text"),
}
rs, ok = b.endString(l)
a.False(ok).Nil(rs)
}
开发者ID:caixw,项目名称:apidoc,代码行数:31,代码来源:block_test.go
示例14: TestBytes1
// bytes
func TestBytes1(t *testing.T) {
a := assert.New(t)
a.NotEqual(bytes(random, 10, []byte("1234123lks;df")), bytes(random, 10, []byte("1234123lks;df")))
a.NotEqual(bytes(random, 10, []byte("1234123lks;df")), bytes(random, 10, []byte("1234123lks;df")))
a.NotEqual(bytes(random, 10, []byte("1234123lks;df")), bytes(random, 10, []byte("1234123lks;df")))
}
开发者ID:issue9,项目名称:rands,代码行数:8,代码来源:rands_test.go
示例15: TestLogWriter_Write
func TestLogWriter_Write(t *testing.T) {
a := assert.New(t)
l := &logWriter{out: os.Stdout, prefix: "[TEST] ", color: colors.Red}
_, err := l.Write([]byte("这是一行红色前缀的字"))
a.NotError(err)
}
开发者ID:caixw,项目名称:apidoc,代码行数:7,代码来源:types_test.go
示例16: TestLexer_match
func TestLexer_match(t *testing.T) {
a := assert.New(t)
l := newLexer([]rune("line1\n line2 \n\t\tline3\n"))
a.NotNil(l)
a.True(l.match("Line"))
a.Equal('1', l.data[l.pos])
l.pos++
l.pos++ // \n
l.pos++ // 空格
l.pos++ // l
a.False(l.match("2222")) // 不匹配
a.False(l.match("ine2")) // 前面有非空白字符,不匹配
l.pos += 8 // ine2 \n\t\t
a.True(l.match("line3"))
l.backup()
l.backup()
a.True(l.match("line3")) // 多次调用 backup 应该和调用一次的作用是一样的。
l.backup()
a.False(l.match("line3\n\n")) // 不匹配,超长了。
a.True(l.match("line3\n"))
// 能正确匹配结尾字符
l = newLexer([]rune("line1\n"))
a.NotNil(l)
a.True(l.match("line1\n"))
}
开发者ID:caixw,项目名称:apidoc,代码行数:31,代码来源:lexer_test.go
示例17: TestConfig_init
func TestConfig_init(t *testing.T) {
a := assert.New(t)
conf := &config{}
err := conf.init()
a.Equal(err.Field, "version")
// 版本号错误
conf.Version = "1.0"
err = conf.init()
a.Equal(err.Field, "version")
// 未声明 inputs
conf.Version = "1.0.1"
err = conf.init()
a.Equal(err.Field, "inputs")
// 未声明 output
conf.Inputs = []*input.Options{&input.Options{}}
err = conf.init()
a.Equal(err.Field, "output")
// 查看错误提示格式是否正确
conf.Output = &output.Options{}
conf.Inputs = append(conf.Inputs, &input.Options{
Lang: "123",
})
err = conf.init()
a.True(strings.HasPrefix(err.Field, "inputs[0]"))
}
开发者ID:caixw,项目名称:apidoc,代码行数:30,代码来源:types_test.go
示例18: TestTag_lineNumber
func TestTag_lineNumber(t *testing.T) {
a := assert.New(t)
l := &lexer{data: []rune("line0\nline1\nline2\n @api line3\n")}
t1 := l.readTag()
a.NotNil(t1)
a.Equal(t1.lineNumber(), 0)
a.Equal(t1.readLine(), "line0")
a.Equal(t1.lineNumber(), 0)
a.Equal(t1.readLine(), "line1")
a.Equal(t1.lineNumber(), 1)
// l.pos 不是从 0 开始
l.pos = 6
t1 = l.readTag()
a.NotNil(t1)
a.Equal(t1.lineNumber(), 1)
a.Equal(t1.readLine(), "line1")
a.Equal(t1.lineNumber(), 1)
a.Equal(t1.readLine(), "line2")
a.Equal(t1.lineNumber(), 2)
}
开发者ID:caixw,项目名称:apidoc,代码行数:26,代码来源:lexer_test.go
示例19: TestLexer_scanApiExample
func TestLexer_scanApiExample(t *testing.T) {
a := assert.New(t)
// 正常测试
code := ` xml
<root>
<data>123</data>
</root>`
matchCode := `<root>
<data>123</data>
</root>`
l := newLexer([]rune(code), 100, "file.go")
a.NotNil(l)
e, err := l.scanApiExample()
a.NotError(err).
Equal(e.Type, "xml").
Equal(e.Code, matchCode)
code = ` xml <root>
<data>123</data>
</root>
@apiURL abc/test`
matchCode = `<root>
<data>123</data>
</root>`
l = newLexer([]rune(code), 100, "file.go")
a.NotNil(l)
e, err = l.scanApiExample()
a.NotError(err).
Equal(e.Type, "xml").
Equal(len(e.Code), len(matchCode)).
Equal(e.Code, matchCode)
}
开发者ID:giserh,项目名称:apidoc,代码行数:33,代码来源:lex_test.go
示例20: TestToByte
func TestToByte(t *testing.T) {
a := assert.New(t)
eq := func(str string, val int64) {
size, err := toByte(str)
a.NotError(err).Equal(size, val)
}
e := func(str string) {
size, err := toByte(str)
a.Error(err).Equal(size, -1)
}
eq("1m", 1024*1024)
eq("100G", 100*1024*1024*1024)
eq("10.2k", 10*1024)
eq("10.9K", 10*1024)
e("")
e("M")
e("-1M")
e("-1.0G")
e("1P")
e("10MB")
}
开发者ID:sdgdsffdsfff,项目名称:logs-1,代码行数:25,代码来源:initfunc_test.go
注:本文中的github.com/issue9/assert.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论