我有集成测试,位于单独的目录中。这些测试通过net / http / httptest在同一进程中运行我的http服务器。我的测试在运行,但没有覆盖范围。
这是一个非常简化的示例,为了简洁起见,不使用http。目录布局:
$GOPATH/src/go-test
hello
hello.go
itest
integration_test.go
Run Code Online (Sandbox Code Playgroud)
你好
package hello
func Hello() string {
return "hello"
}
Run Code Online (Sandbox Code Playgroud)
integration_test.go
package itest
import (
"go-test/hello"
"testing"
)
func TestHello(t *testing.T) {
s := hello.Hello()
if s != "hello" {
t.Errorf("Hello says %s", s)
}
}
Run Code Online (Sandbox Code Playgroud)
运行测试:
$ go test -v -coverpkg ./... ./itest
=== RUN TestHello
--- PASS: TestHello (0.00s)
PASS
coverage: 0.0% of statements in ./...
ok go-test/itest 0.001s coverage: 0.0% of statements in ./...
Run Code Online (Sandbox Code Playgroud)
另一尝试:
$ …Run Code Online (Sandbox Code Playgroud) RFC 7159说
JavaScript Object Notation(JSON)是用于结构化数据序列化的文本格式.
但Go将JSON视为 []byte
func Marshal(v interface{}) ([]byte, error)
func Unmarshal(data []byte, v interface{}) error
Run Code Online (Sandbox Code Playgroud)
为什么这些函数不能获取并返回string?
我在这里找不到任何解释 https://golang.org/pkg/encoding/json/ https://blog.golang.org/json-and-go