回答編集履歴

2

リクエストURLチェック版を追記

2015/11/02 11:24

投稿

shiena
shiena

スコア1825

test CHANGED
@@ -51,3 +51,69 @@
51
51
  }
52
52
 
53
53
  ```
54
+
55
+
56
+
57
+ リクエストURLチェック追加版
58
+
59
+ 参考: [Goで外部リクエストが関わる処理をテストする](http://qiita.com/taizo/items/32d895e35397336bf285)
60
+
61
+
62
+
63
+ ```go
64
+
65
+ package main
66
+
67
+
68
+
69
+ import (
70
+
71
+ "fmt"
72
+
73
+ "net/http"
74
+
75
+ "net/http/httptest"
76
+
77
+ "testing"
78
+
79
+ )
80
+
81
+
82
+
83
+ func TestFetch(t *testing.T) {
84
+
85
+ path := "/path/to/ip"
86
+
87
+ expected := "1.2.3.4"
88
+
89
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
90
+
91
+ if g, w := r.URL.Path, path; g != w {
92
+
93
+ t.Errorf("request got path %s, want %s", g, w)
94
+
95
+ }
96
+
97
+ fmt.Fprint(w, expected)
98
+
99
+ }))
100
+
101
+ defer ts.Close()
102
+
103
+ actual, err := Fetch(ts.URL + path)
104
+
105
+ if err != nil {
106
+
107
+ t.Errorf("%s", err)
108
+
109
+ }
110
+
111
+ if actual != expected {
112
+
113
+ t.Errorf("got %v want %s", actual, expected)
114
+
115
+ }
116
+
117
+ }
118
+
119
+ ```

1

コードブロックの言語名修正

2015/11/02 11:24

投稿

shiena
shiena

スコア1825

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- ```go:main_test.go
5
+ ```go
6
6
 
7
7
  package main
8
8