def METHOD_NAME(code_matcher=Always(), headers_matcher=Always(), body_matcher=Always()):
    """
    Match a Treq response object with certain code and body.
    :param Matcher code_matcher: A matcher to apply to the response code.
    :param Matcher headers_matcher: A matcher to apply to the response headers
        (a ``twisted.web.http_headers.Headers`` instance).
    :param Matcher body_matcher: A matcher to apply to the response body.
    :return: A matcher.
    """
    matchers = [
        MatchesStructure(
            code=code_matcher,
            headers=headers_matcher,
        ),
    ]
    # see comment in test_web.MagicFolderTests.test_method_not_allowed
    # which is one user that wants nothing to try and read the content
    # in some cases..
    if body_matcher is not None:
        matchers.append(
            AfterPreprocessing(
                lambda response: content(response),
                succeeded(body_matcher),
            )
        )
    return MatchesAll(*matchers)