Open Stranger6667 opened 5 years ago
My 2 cents here:
That reasoning seems to indicate we should always stick to whatever the HTTP spec authorizes for fuzzying the response. A good example for discussion is status code. Fuzzying to get any kind of string here seems overkill and I would put that in the list of things to test at a lower level of the network stack, but fuzzying 3-digit-string seems reasonable. However only testing the exact list of expected status would not be enough (since some services return "their own code"...)
I think we need to clearly limit what should be expected from this plugin. For instance:
To go under in the network stack, or for different protocols, I would defer to other packages (unless you plan something different ? but it would be much more complicated than just using vcrpy...) To go above HTTP and fuzz with some kind of user API knowledge, we will need "coupling" with a specific way of specifying that API on the user side for the usual application.
What do you think ?
For unhappy path testing, there could be an extra parameter that will mutate recorded cassettes. Use cases:
Possible fuzzes:
All these could be combined and generate test cases