本文整理汇总了Golang中github.com/stretchr/goweb/handlers/test.TestHandler类的典型用法代码示例。如果您正苦于以下问题:Golang TestHandler类的具体用法?Golang TestHandler怎么用?Golang TestHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TestHandler类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestErrorHandlerGetsUsedOnError
func TestErrorHandlerGetsUsedOnError(t *testing.T) {
responseWriter := new(http_test.TestResponseWriter)
testRequest, _ := http.NewRequest("GET", "http://stretchr.org/goweb", nil)
codecService := codecsservices.NewWebCodecService()
handler := NewHttpHandler(codecService)
errorHandler := new(handlers_test.TestHandler)
handler.SetErrorHandler(errorHandler)
errorHandler.On("Handle", mock.Anything).Return(false, nil)
// make a handler throw an error
var theError error = errors.New("Test error")
handler.Map(func(c context.Context) error {
return theError
})
handler.ServeHTTP(responseWriter, testRequest)
if mock.AssertExpectationsForObjects(t, errorHandler.Mock) {
// get the first context
ctx := errorHandler.Calls[0].Arguments[0].(context.Context)
// make sure the error data field was set
assert.Equal(t, theError.Error(), ctx.Data().Get("error").Data().(HandlerError).Error(), "the error should be set in the data with the 'error' key")
assert.Equal(t, responseWriter, ctx.HttpResponseWriter())
assert.Equal(t, testRequest, ctx.HttpRequest())
}
}
开发者ID:anjijava16,项目名称:goweb,代码行数:35,代码来源:http_handler_test.go
示例2: TestAppendPostHandler
func TestAppendPostHandler(t *testing.T) {
handler1 := new(handlers_test.TestHandler)
codecService := codecsservices.NewWebCodecService()
h := NewHttpHandler(codecService)
handler1.On("WillHandle", mock.Anything).Return(true, nil)
handler1.On("Handle", mock.Anything).Return(false, nil)
h.AppendPostHandler(handler1)
h.Handlers.Handle(nil)
assert.Equal(t, 1, len(h.PostHandlersPipe()))
mock.AssertExpectationsForObjects(t, handler1.Mock)
}
开发者ID:anjijava16,项目名称:goweb,代码行数:16,代码来源:http_handler_test.go
示例3: TestPipe_Handle_Stopping
func TestPipe_Handle_Stopping(t *testing.T) {
ctx := context_test.MakeTestContext()
handler1 := new(handlers_test.TestHandler)
handler2 := new(handlers_test.TestHandler)
handler3 := new(handlers_test.TestHandler)
// add the handlers to the pipe
p := Pipe{handler1, handler2, handler3}
// setup expectations
handler1.On("WillHandle", ctx).Return(true, nil)
handler1.On("Handle", ctx).Return(true, nil)
// call handle
p.Handle(ctx)
// assert expectations
mock.AssertExpectationsForObjects(t, handler1.Mock, handler2.Mock, handler3.Mock)
}
开发者ID:antianlu,项目名称:goweb,代码行数:22,代码来源:pipe_test.go
示例4: TestDataGetsCopiedToEachContext
func TestDataGetsCopiedToEachContext(t *testing.T) {
codecService := codecsservices.NewWebCodecService()
handler1 := new(handlers_test.TestHandler)
h := NewHttpHandler(codecService)
h.Data.Set("name", "Mat")
handler1.On("WillHandle", mock.Anything).Return(true, nil)
handler1.On("Handle", mock.Anything).Return(false, nil)
h.AppendHandler(handler1)
req, _ := http.NewRequest("GET", "something", nil)
h.ServeHTTP(nil, req)
assert.Equal(t, 1, len(h.HandlersPipe()))
mock.AssertExpectationsForObjects(t, handler1.Mock)
ctx := handler1.Calls[0].Arguments[0].(context.Context)
assert.Equal(t, ctx.Data().Get("name").Str(), "Mat")
}
开发者ID:anjijava16,项目名称:goweb,代码行数:23,代码来源:http_handler_test.go
示例5: TestBeforeAndAfterHandlers
func TestBeforeAndAfterHandlers(t *testing.T) {
responseWriter := new(http_test.TestResponseWriter)
testRequest, _ := http.NewRequest("GET", "http://stretchr.org/goweb", nil)
codecService := codecsservices.NewWebCodecService()
handler := NewHttpHandler(codecService)
// setup some test handlers
handler1 := new(handlers_test.TestHandler)
handler2 := new(handlers_test.TestHandler)
handler3 := new(handlers_test.TestHandler)
handler.MapBefore(func(c context.Context) error {
_, err := handler1.Handle(c)
return err
})
handler.Map(func(c context.Context) error {
_, err := handler2.Handle(c)
return err
})
handler.MapAfter(func(c context.Context) error {
_, err := handler3.Handle(c)
return err
})
handler1.On("Handle", mock.Anything).Return(false, nil)
handler2.On("Handle", mock.Anything).Return(false, nil)
handler3.On("Handle", mock.Anything).Return(false, nil)
handler.ServeHTTP(responseWriter, testRequest)
mock.AssertExpectationsForObjects(t, handler1.Mock, handler2.Mock, handler3.Mock)
// make sure it's always the same context
ctx1 := handler1.Calls[0].Arguments[0].(context.Context)
ctx2 := handler2.Calls[0].Arguments[0].(context.Context)
ctx3 := handler3.Calls[0].Arguments[0].(context.Context)
assert.Equal(t, ctx1, ctx2, "Contexts should be the same")
assert.Equal(t, ctx2, ctx3, "Contexts should be the same")
}
开发者ID:antianlu,项目名称:goweb,代码行数:42,代码来源:mapping_test.go
示例6: TestPrependPreHandler
func TestPrependPreHandler(t *testing.T) {
handler1 := new(handlers_test.TestHandler)
handler2 := new(handlers_test.TestHandler)
codecService := codecsservices.NewWebCodecService()
h := NewHttpHandler(codecService)
handler1.TestData().Set("id", 1)
handler2.TestData().Set("id", 2)
handler1.On("WillHandle", mock.Anything).Return(true, nil)
handler1.On("Handle", mock.Anything).Return(false, nil)
handler2.On("WillHandle", mock.Anything).Return(true, nil)
handler2.On("Handle", mock.Anything).Return(false, nil)
h.PrependPreHandler(handler1)
h.PrependPreHandler(handler2)
h.Handlers.Handle(nil)
assert.Equal(t, 2, len(h.PreHandlersPipe()))
assert.Equal(t, 2, h.PreHandlersPipe()[0].(*handlers_test.TestHandler).TestData().Get("id").Data())
assert.Equal(t, 1, h.PreHandlersPipe()[1].(*handlers_test.TestHandler).TestData().Get("id").Data())
mock.AssertExpectationsForObjects(t, handler1.Mock)
}
开发者ID:anjijava16,项目名称:goweb,代码行数:26,代码来源:http_handler_test.go
示例7: TestServeHTTP
func TestServeHTTP(t *testing.T) {
responseWriter := new(http_test.TestResponseWriter)
testRequest, _ := http.NewRequest("GET", "http://stretchr.org/goweb", nil)
codecService := codecsservices.NewWebCodecService()
handler := NewHttpHandler(codecService)
// setup some test handlers
handler1 := new(handlers_test.TestHandler)
handler2 := new(handlers_test.TestHandler)
handler3 := new(handlers_test.TestHandler)
handler.Handlers = append(handler.Handlers, handler1)
handler.Handlers = append(handler.Handlers, handler2)
handler.Handlers = append(handler.Handlers, handler3)
handler1.On("WillHandle", mock.Anything).Return(true, nil)
handler1.On("Handle", mock.Anything).Return(false, nil)
handler2.On("WillHandle", mock.Anything).Return(true, nil)
handler2.On("Handle", mock.Anything).Return(false, nil)
handler3.On("WillHandle", mock.Anything).Return(true, nil)
handler3.On("Handle", mock.Anything).Return(false, nil)
handler.ServeHTTP(responseWriter, testRequest)
mock.AssertExpectationsForObjects(t, handler1.Mock, handler2.Mock, handler3.Mock)
// get the first context
ctx := handler1.Calls[0].Arguments[0].(context.Context)
assert.Equal(t, responseWriter, ctx.HttpResponseWriter())
assert.Equal(t, testRequest, ctx.HttpRequest())
// make sure it's always the same context
ctx1 := handler1.Calls[0].Arguments[0].(context.Context)
ctx2 := handler2.Calls[0].Arguments[0].(context.Context)
ctx3 := handler3.Calls[0].Arguments[0].(context.Context)
assert.Equal(t, ctx1, ctx2, "Contexts should be the same")
assert.Equal(t, ctx2, ctx3, "Contexts should be the same")
}
开发者ID:anjijava16,项目名称:goweb,代码行数:42,代码来源:http_handler_test.go
注:本文中的github.com/stretchr/goweb/handlers/test.TestHandler类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论