假設我正在測驗一個呼叫 Web 服務的功能,并且該服務被模擬為 httptest.NewServer
func TestSomeFeature(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
}))
SomeFeature(server.URL, "foo")
}
func SomeFeature(host, a string) {
if a == "foo" {
http.Get(fmt.Sprintf("%v/foo", host))
}
if a == "bar" {
http.Get(fmt.Sprintf("%v/bar", host))
}
}
我如何斷言服務器是用正確的 url 呼叫的,/foo并且如果用錯誤的 url 呼叫它或根本沒有呼叫它,則測驗失敗?
uj5u.com熱心網友回復:
你可以這樣做:
func TestSomeFeature(t *testing.T) {
called := false
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// assert that strings.Contains(r.RequestURI, "/foo") is true
called = true
w.WriteHeader(200)
}))
SomeFeature(server.URL, "foo")
// assert that called is true
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365015.html
