github.com/iris-contrib/httpexpect/v2 (go): Package httpexpect helps with end-to-end HTTP and REST API testing.  See example directory:  There are two common ways to test API with httpexpect:  The second approach works only if the server is a Go module and its handler can be imported in tests.  Concrete behaviour is determined by Client implementation passed to Config struct. If you're using http.Client, set its Transport field (http.RoundTriper) to one of the following:  Note that http handler can be usually obtained from http framework you're using. E.g., echo framework provides either http.Handler.  You can also provide your own implementation of RequestFactory (creates http.Request), or Client (gets http.Request and returns http.Response).  If you're starting server from tests, it's very handy to use net/http/httptest.  Whenever values are checked for equality in httpexpect, they are converted to "canonical form":  This is equivalent to subsequently json.Marshal() and json.Unmarshal() the value and currently is implemented so.  When some check fails, failure is reported. If non-fatal failures are used (see Reporter interface), execution is continued and instance that was checked is marked as failed.  If specific instance is marked as failed, all subsequent checks are ignored for this instance and for any child instances retrieved after failure.  Example:  If you want to be informed about every asserion made, successful or failed, you can use AssertionHandler interface.  Default implementation of this interface ignores successful assertions and reports failed assertions using Formatter and Reporter objects.  Custom AssertionHandler can handle all assertions (e.g. dump them in JSON format) and is free to use or not to use Formatter and Reporter in its sole discretion.
Keywords: go|golang|http-testing|iris|iris-golang