设为首页 加入收藏

TOP

golang单元测试一(简单函数测试)(七)
2023-07-23 13:29:47 】 浏览:131
Tags:golang 单元测 简单函
ample.com/"); err == nil { t.Fatal("Expected error when parsing non-amqp scheme") } } func TestURIScheme(t *testing.T) { if _, err := ParseURI("amqp://example.com/"); err != nil { t.Fatalf("Expected to parse amqp scheme, got %v", err) } if _, err := ParseURI("amqps://example.com/"); err != nil { t.Fatalf("Expected to parse amqps scheme, got %v", err) } } func TestURIWhitespace(t *testing.T) { if _, err := ParseURI("amqp://admin:PASSWORD@rabbitmq-service/ -http_port=8080"); err == nil { t.Fatal("Expected to fail if URI contains whitespace") } } func TestURIDefaults(t *testing.T) { url := "amqp://" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.String() != "amqp://localhost/" { t.Fatal("Defaults not encoded properly got:", uri.String()) } } func TestURIComplete(t *testing.T) { url := "amqp://bob:dobbs@foo.bar:5678/private" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.String() != url { t.Fatal("Defaults not encoded properly want:", url, " got:", uri.String()) } } func TestURIDefaultPortAmqpNotIncluded(t *testing.T) { url := "amqp://foo.bar:5672/" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.String() != "amqp://foo.bar/" { t.Fatal("Defaults not encoded properly got:", uri.String()) } } func TestURIDefaultPortAmqp(t *testing.T) { url := "amqp://foo.bar/" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.Port != 5672 { t.Fatal("Default port not correct for amqp, got:", uri.Port) } } func TestURIDefaultPortAmqpsNotIncludedInString(t *testing.T) { url := "amqps://foo.bar:5671/" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.String() != "amqps://foo.bar/" { t.Fatal("Defaults not encoded properly got:", uri.String()) } else { t.Logf("ParseURI(%s) execute success\n", url) } } func TestURIDefaultPortAmqps(t *testing.T) { url := "amqps://foo.bar/" uri, err := ParseURI(url) if err != nil { t.Fatal("Could not parse") } if uri.Port != 5671 { t.Fatal("Default port not correct for amqps, got:", uri.Port) } }

然后执行:

go test -cover               
PASS
coverage: 88.0% of statements
ok      go-demo/testexample/uri 0.385s

可以看到测试通过,覆盖率是88%。说明我们还有一些代码分支没有测试到,那我们如何去看这些没有覆盖到的代码分支呢?

很简单,还是go test命令:

go test -coverprofile=cover_out
PASS
coverage: 88.0% of statements
ok      go-demo/testexample/uri 0.119s

执行完成后我们可以看到目录中多了cover_out文件

tree              
.
├── cover_out
├── uri.go
└── uri_test.go

我们看下这个文件里能找到没有覆盖到的代码么?

mode: set
go-demo/testexample/uri/uri.go:50.40,54.32 2 1
go-demo/testexample/uri/uri.go:59.2,60.16 2 1
go-demo/testexample/uri/uri.go:65.2,67.14 2 1
go-demo/testexample/uri/uri.go:74.2,77.16 3 1
go-demo/testexample/uri/uri.go:81.2,81.16 1 1
go-demo/testexample/uri/uri.go:92.2,92.19 1 1
go-demo/testexample/uri/uri.go:99.2,99.18 1 1
go-demo/testexample/uri/uri.go:116.2,116.21 1 1
go-demo/testexampl
首页 上一页 4 5 6 7 8 下一页 尾页 7/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇golang中的init初始化函数 下一篇golang的内存管理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目