import "github.com/quii/mockingjay-server/monkey"
Package monkey lets you wrap bad behaviour around your http.Handlers, such as request delays, incorrect responses, bodies and returning garbage from configuration. By using monkey you can simulate the unpredictable nature of calling services over HTTP.
NewServer creates a http.Handler which wraps it's monkey business around it, to return a new http.Handler. If no behaviours are defined in the config it will return the original handler, otherwise an error
ExampleNewServer is an example as to how use monkey to wrap around a http.Handler and change it's behaviour
Code:
// Create a fake server from YAML testYAML := ` --- # Writes a different body 50% of the time - body: "This is wrong :( " frequency: 0.5 # Delays initial writing of response by a second 20% of the time - delay: 1000 frequency: 0.2 # Returns a 404 30% of the time - status: 404 frequency: 0.3 # Write 10,000,000 garbage bytes 10% of the time - garbage: 10000000 frequency: 0.09 ` // your server you want to monkey with var server http.Handler // monkey will create you a new server from your YAML server, err := NewServerFromYAML(server, []byte(testYAML)) // err will be returned if the config is bad if err != nil { log.Fatal(err) } // Mount it just like any other server http.Handle("/", server) http.ListenAndServe(":9090", nil)
NewServerFromYAML creates a http.Handler which wraps monkey business defined from YAML around it, to return a new http.Handler. If the YAML is invalid, it will return an error.
Package monkey imports 7 packages (graph) and is imported by 4 packages. Updated 2016-07-30. Refresh now. Tools for package owners.