func (r Responder) Once(fn ...func(...interface{})) Responder {
	return r.times("Once", 1, fn...)
}
Once returns a new Responder callable once before returning an
error. If the Responder is called 2 or more times and fn is passed
and non-nil, it acts as the fn parameter of NewNotFoundResponder,
allowing to dump the stack trace to localize the origin of the
call.
package httpmock
import (
	"bytes"
	"encoding/json"
	"encoding/xml"
	"fmt"
	"io"
	"net/http"
	"strconv"
	"strings"
)
type Responder func(*http.Request) (*http.Response, error)
func (r Responder) times(name string, n int, fn ...func(...interface{})) Responder {
	count := 0
	return func(req *http.Request) (*http.Response, error) {
		count++
		if count > n {
			err := stackTracer{
				err: fmt.Errorf("Responder not found for %s %s (coz %s and already called %d times)", req.Method, req.URL, name, count),
			}
			if len(fn) > 0 {
				err.customFn = fn[0]
			}
			return nil, err
		}
		return r(req)
	}
}
func (r Responder) Times(n int, fn ...func(...interface{})) Responder {
	return r.times("Times", n, fn...)
}