| 87 | } |
| 88 | |
| 89 | func TestDel(t *testing.T) { |
| 90 | handler, _ := newHttpHandler() |
| 91 | defer handler.Clean() |
| 92 | // 创建一个测试用的http server |
| 93 | server := httptest.NewServer(http.HandlerFunc(handler.DelHandler)) |
| 94 | defer server.Close() |
| 95 | req, _ := http.NewRequest(http.MethodDelete, server.URL+"?key=test_key", nil) |
| 96 | req.Header.Set("Content-Type", "multipart/form-data") |
| 97 | |
| 98 | //提前插入test_key |
| 99 | err := handler.Put([]byte("test_key"), []byte("test_value")) |
| 100 | if err != nil { |
| 101 | return |
| 102 | } |
| 103 | |
| 104 | resp, err := http.DefaultClient.Do(req) |
| 105 | if err != nil { |
| 106 | t.Fatalf("could not send request: %v", err) |
| 107 | } |
| 108 | defer func(Body io.ReadCloser) { |
| 109 | err := Body.Close() |
| 110 | if err != nil { |
| 111 | |
| 112 | } |
| 113 | }(resp.Body) |
| 114 | |
| 115 | // 检查响应 |
| 116 | if resp.StatusCode != http.StatusOK { |
| 117 | t.Errorf("unexpected status code: %d", resp.StatusCode) |
| 118 | } |
| 119 | |
| 120 | body, err := io.ReadAll(resp.Body) |
| 121 | if err != nil { |
| 122 | t.Errorf("ReadAll error: %v", err) |
| 123 | } |
| 124 | if string(body) != "ok" { |
| 125 | t.Errorf("Delete error: expected ok, got %s", string(body)) |
| 126 | } |
| 127 | |
| 128 | // 验证是否delete成功 |
| 129 | _, err = handler.Get([]byte("test_key")) |
| 130 | if err == nil { |
| 131 | t.Errorf("Del error: %v", err) |
| 132 | } else { |
| 133 | t.Logf("delete data success") |
| 134 | } |
| 135 | } |
| 136 | |
| 137 | func TestGet(t *testing.T) { |
| 138 | handler, _ := newHttpHandler() |