1

私は Go に非常に慣れていないので、Go Martini の Handler コードをテストする方法の例を含む規則/標準があるのだろうかと思っていましたか?

よろしくお願いします!

4

1 に答える 1

3

martini-contrib ライブラリには、注目に値する既存のコードが多数あります: https://github.com/martini-contrib/secure/blob/master/secure_test.go

例えば

func Test_No_Config(t *testing.T) {
    m := martini.Classic()
    m.Use(Secure(Options{
    // nothing here to configure
    }))

    m.Get("/foo", func() string {
        return "bar"
    })

    res := httptest.NewRecorder()
    req, _ := http.NewRequest("GET", "/foo", nil)

    m.ServeHTTP(res, req)

    expect(t, res.Code, http.StatusOK)
    expect(t, res.Body.String(), `bar`)
}

要約すると:

  1. でサーバーを作成するmartini.Classic()
  2. テストするハンドラーへのルートを作成します
  3. 応答レコーダーに対して実行する
  4. 応答レコーダーの結果 (ステータス コード、本文) が期待どおりであることを確認します。
于 2015-06-20T22:44:27.573 に答える