Goのテスト内で静的ファイル配信サーバーを起動する
実質一行。異常に簡単だった。
import (
"net/http"
"net/http/httptest"
"testing"
)
func TestDownload(t *testing.T) {
ts := httptest.NewServer(http.FileServer(http.Dir("testdata")))
defer ts.Close()
resp, err := http.Get(ts.URL + "/test.txt")
...
}
ちなみに、テスト用のファイルを testdata
という名前のディレクトリに置くのは、公式のドキュメントにも書かれている慣習ですね。
The go tool will ignore a directory named "testdata", making it available to hold ancillary data needed by the tests.