おそらくはそれさえも平凡な日々

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 という名前のディレクトリに置くのは、公式のドキュメントにも書かれている慣習ですね。

https://golang.org/cmd/go/

The go tool will ignore a directory named "testdata", making it available to hold ancillary data needed by the tests.

created at
last modified at

2017-10-07T23:59:05+0900

comments powered by Disqus