어떻게 보증하는 요청이 일어났을 때 올바르게 조롱 API?

0

질문

말하자 나는 테스트 기능을 호출하는 웹 서비스,그리고 서비스를 조롱과 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 을 또는지라고 합니까?

go testing
2021-11-23 21:15:23
1

최고의 응답

3

당신은 그것을 할 수 있는 다음과 같다:

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
}
2021-11-23 21:19:38

기가 없는 동시성 문제로 실행하는 경우 이러한 병렬 동 server?
Timo Huovinen

@TimoHuovinen 물론 위의 코드는 순차적인 테스트,당신은 당신이 지정하지 않은 동시에서 당신의 질문
blackgreen

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................