Ich teste http benutzerdefinierten Endpunkt für beegoBeego - Endpoint Testing
package test
import (
"github.com/astaxie/beego"
. "github.com/smartystreets/goconvey/convey"
_ "golife-api-cons/routers"
"net/http"
"net/http/httptest"
"path/filepath"
"runtime"
"testing"
)
func init() {
_, file, _, _ := runtime.Caller(1)
apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".."+string(filepath.Separator))))
beego.TestBeegoInit(apppath)
}
// TestGet is a sample to run an endpoint test
func TestGet(t *testing.T) {
r, _ := http.NewRequest("GET", "/my/endpoint/fetches/data", nil)
w := httptest.NewRecorder()
beego.BeeApp.Handlers.ServeHTTP(w, r)
beego.Trace("testing", "TestGet", "Code[%d]\n%s", w.Code, w.Body.String())
Convey("Subject: Test Station Endpoint\n", t, func() {
Convey("Status Code Should Be 200", func() {
So(w.Code, ShouldEqual, 200)
})
Convey("The Result Should Not Be Empty", func() {
So(w.Body.Len(), ShouldBeGreaterThan, 0)
})
})
}
Wenn ich go test -v
laufen mit,
ich als Antwort dial tcp :0: getsockopt: connection refused
ich MariaDB bin mit auf meinem lokalen läuft, Ich habe verifiziert mit netstat -tulpn
, dass meine Datenbank einwandfrei funktioniert (ich bekomme eine gültige Antwort, wenn ich Postman benutze und mein Server läuft)
Eine seltsame Beobachtung, nach der Aufnahme der Linie _ "golife-api-cons/routers"
i erhalten diesen Fehler noch vor ARE Test
Mein Test bestanden lief mit Antwort 200 OK, aber ohne Daten, wie ich als Antwort erhalten den oben genannten Fehler
EDIT
der Standardpfad von durch TestBeegoInit
Funktion verwendet wird, ist /path/to/my/project/test
, die nicht mit dem gewünschten Weg ist, so dass ich versuchte, zu dem absoluten Pfad geben, noch kann ich nicht DB verbinden.
Mit welchen Einstellungen läuft Ihre App? Sie sagen, Ihre Datenbank läuft, aber woher weiß Ihr Test, mit welcher Datenbank eine Verbindung hergestellt werden soll? – dusual
@dusual - Irgendwelche spezifischen Einstellungen, die Sie brauchen? Überprüfen Sie die gleiche bego.TestBeegoInit () in der Quelle –
poorva