Adds fluent HttpClient mocking support#434
Merged
Merged
Conversation
test: Add comprehensive HttpClient mocking tests chore: Cleanup unused usings and minor formatting
Removes the commented-out `CreateClientFactory` method from `MockHttpMessageHandlerExtensions`.
This was referenced Mar 16, 2026
This was referenced Mar 27, 2026
This was referenced Apr 4, 2026
This was referenced May 4, 2026
github-actions Bot
pushed a commit
to BenjaminMichaelis/DotnetTemplates
that referenced
this pull request
May 6, 2026
[//]: # (dependabot-start)⚠️ **Dependabot is rebasing this PR**⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Updated [Moq.AutoMock](https://github.com/moq/Moq.AutoMocker) from 3.5.0 to 4.0.2. <details> <summary>Release notes</summary> _Sourced from [Moq.AutoMock's releases](https://github.com/moq/Moq.AutoMocker/releases)._ ## 4.0.1 ## What's Changed * Allow GetMock<IServiceProvider>() to return a mock instead of the AutoMocker instance by @Keboo in moq/Moq.AutoMocker#451 **Full Changelog**: moq/Moq.AutoMocker@v4.0.0...v4.0.1 ## 4.0.0 ## What's Changed * Fix 406: Adds tests for disabling source generators by @Keboo in moq/Moq.AutoMocker#407 * Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#408 * Bump TUnit from 1.3.15 to 1.5.6 by @dependabot[bot] in moq/Moq.AutoMocker#409 * Clarifies Source Generator Ambiguities and Disabling by @Keboo in moq/Moq.AutoMocker#411 * Bump the github-actions group with 2 updates by @dependabot[bot] in moq/Moq.AutoMocker#413 * Bump NUnit3TestAdapter from 6.0.0 to 6.0.1 by @dependabot[bot] in moq/Moq.AutoMocker#416 * Bump TUnit from 1.5.6 to 1.6.5 by @dependabot[bot] in moq/Moq.AutoMocker#417 * Adds package validation and documentation by @Keboo in moq/Moq.AutoMocker#418 * Bump TUnit from 1.6.5 to 1.7.0 by @dependabot[bot] in moq/Moq.AutoMocker#419 * Bump TUnit from 1.7.0 to 1.9.2 by @dependabot[bot] in moq/Moq.AutoMocker#420 * Bump NUnit3TestAdapter from 6.0.1 to 6.1.0 by @dependabot[bot] in moq/Moq.AutoMocker#421 * Bump TUnit from 1.9.2 to 1.9.81 by @dependabot[bot] in moq/Moq.AutoMocker#422 * Bump TUnit from 1.9.81 to 1.12.3 by @dependabot[bot] in moq/Moq.AutoMocker#423 * Bump xunit.v3 from 3.2.1 to 3.2.2 by @dependabot[bot] in moq/Moq.AutoMocker#424 * Bump TUnit from 1.12.3 to 1.12.53 by @dependabot[bot] in moq/Moq.AutoMocker#425 * Adds Use overload for registering implementation type by @Keboo in moq/Moq.AutoMocker#426 * Bump TUnit from 1.12.53 to 1.12.111 by @dependabot[bot] in moq/Moq.AutoMocker#427 * Adds primary constructor test coverage by @Keboo in moq/Moq.AutoMocker#428 * Refactor: Rename `AddFakeLogging` to `WithFakeLogging` by @Keboo in moq/Moq.AutoMocker#429 * Bump Microsoft.SourceLink.GitHub from 8.0.0 to 10.0.102 by @dependabot[bot] in moq/Moq.AutoMocker#431 * Bump TUnit from 1.12.111 to 1.13.11 by @dependabot[bot] in moq/Moq.AutoMocker#433 * Bump MSTest from 4.0.2 to 4.1.0 by @dependabot[bot] in moq/Moq.AutoMocker#432 * Adds fluent HttpClient mocking support by @Keboo in moq/Moq.AutoMocker#434 * Bump coverlet.collector from 6.0.4 to 8.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#435 * Bump TUnit from 1.13.11 to 1.15.0 by @dependabot[bot] in moq/Moq.AutoMocker#437 * Bump Microsoft.SourceLink.GitHub from 10.0.102 to 10.0.103 by @dependabot[bot] in moq/Moq.AutoMocker#436 * Bump Microsoft.ApplicationInsights from 2.23.0 to 3.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#430 * Refactors HTTP response extensions by @Keboo in moq/Moq.AutoMocker#438 * Bump NUnit from 4.4.0 to 4.5.0 by @dependabot[bot] in moq/Moq.AutoMocker#439 * Bump TUnit from 1.15.0 to 1.17.7 by @dependabot[bot] in moq/Moq.AutoMocker#440 * Adds resolver insertion and SimpleTypeResolver base by @Keboo in moq/Moq.AutoMocker#441 * Bump TUnit from 1.17.7 to 1.18.0 by @dependabot[bot] in moq/Moq.AutoMocker#444 * Bump actions/upload-artifact from 6 to 7 in the github-actions group by @dependabot[bot] in moq/Moq.AutoMocker#442 * Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 by @dependabot[bot] in moq/Moq.AutoMocker#443 * Bump NUnit from 4.5.0 to 4.5.1 by @dependabot[bot] in moq/Moq.AutoMocker#446 * Bump TUnit from 1.18.0 to 1.19.16 by @dependabot[bot] in moq/Moq.AutoMocker#447 **Full Changelog**: moq/Moq.AutoMocker@v3.6.1...v4.0.0 Commits viewable in [compare view](https://github.com/moq/Moq.AutoMocker/commits). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced May 8, 2026
github-actions Bot
pushed a commit
to BenjaminMichaelis/DotnetTemplates
that referenced
this pull request
May 15, 2026
Updated [Moq.AutoMock](https://github.com/moq/Moq.AutoMocker) from 3.5.0 to 4.0.2. <details> <summary>Release notes</summary> _Sourced from [Moq.AutoMock's releases](https://github.com/moq/Moq.AutoMocker/releases)._ ## 4.0.1 ## What's Changed * Allow GetMock<IServiceProvider>() to return a mock instead of the AutoMocker instance by @Keboo in moq/Moq.AutoMocker#451 **Full Changelog**: moq/Moq.AutoMocker@v4.0.0...v4.0.1 ## 4.0.0 ## What's Changed * Fix 406: Adds tests for disabling source generators by @Keboo in moq/Moq.AutoMocker#407 * Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#408 * Bump TUnit from 1.3.15 to 1.5.6 by @dependabot[bot] in moq/Moq.AutoMocker#409 * Clarifies Source Generator Ambiguities and Disabling by @Keboo in moq/Moq.AutoMocker#411 * Bump the github-actions group with 2 updates by @dependabot[bot] in moq/Moq.AutoMocker#413 * Bump NUnit3TestAdapter from 6.0.0 to 6.0.1 by @dependabot[bot] in moq/Moq.AutoMocker#416 * Bump TUnit from 1.5.6 to 1.6.5 by @dependabot[bot] in moq/Moq.AutoMocker#417 * Adds package validation and documentation by @Keboo in moq/Moq.AutoMocker#418 * Bump TUnit from 1.6.5 to 1.7.0 by @dependabot[bot] in moq/Moq.AutoMocker#419 * Bump TUnit from 1.7.0 to 1.9.2 by @dependabot[bot] in moq/Moq.AutoMocker#420 * Bump NUnit3TestAdapter from 6.0.1 to 6.1.0 by @dependabot[bot] in moq/Moq.AutoMocker#421 * Bump TUnit from 1.9.2 to 1.9.81 by @dependabot[bot] in moq/Moq.AutoMocker#422 * Bump TUnit from 1.9.81 to 1.12.3 by @dependabot[bot] in moq/Moq.AutoMocker#423 * Bump xunit.v3 from 3.2.1 to 3.2.2 by @dependabot[bot] in moq/Moq.AutoMocker#424 * Bump TUnit from 1.12.3 to 1.12.53 by @dependabot[bot] in moq/Moq.AutoMocker#425 * Adds Use overload for registering implementation type by @Keboo in moq/Moq.AutoMocker#426 * Bump TUnit from 1.12.53 to 1.12.111 by @dependabot[bot] in moq/Moq.AutoMocker#427 * Adds primary constructor test coverage by @Keboo in moq/Moq.AutoMocker#428 * Refactor: Rename `AddFakeLogging` to `WithFakeLogging` by @Keboo in moq/Moq.AutoMocker#429 * Bump Microsoft.SourceLink.GitHub from 8.0.0 to 10.0.102 by @dependabot[bot] in moq/Moq.AutoMocker#431 * Bump TUnit from 1.12.111 to 1.13.11 by @dependabot[bot] in moq/Moq.AutoMocker#433 * Bump MSTest from 4.0.2 to 4.1.0 by @dependabot[bot] in moq/Moq.AutoMocker#432 * Adds fluent HttpClient mocking support by @Keboo in moq/Moq.AutoMocker#434 * Bump coverlet.collector from 6.0.4 to 8.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#435 * Bump TUnit from 1.13.11 to 1.15.0 by @dependabot[bot] in moq/Moq.AutoMocker#437 * Bump Microsoft.SourceLink.GitHub from 10.0.102 to 10.0.103 by @dependabot[bot] in moq/Moq.AutoMocker#436 * Bump Microsoft.ApplicationInsights from 2.23.0 to 3.0.0 by @dependabot[bot] in moq/Moq.AutoMocker#430 * Refactors HTTP response extensions by @Keboo in moq/Moq.AutoMocker#438 * Bump NUnit from 4.4.0 to 4.5.0 by @dependabot[bot] in moq/Moq.AutoMocker#439 * Bump TUnit from 1.15.0 to 1.17.7 by @dependabot[bot] in moq/Moq.AutoMocker#440 * Adds resolver insertion and SimpleTypeResolver base by @Keboo in moq/Moq.AutoMocker#441 * Bump TUnit from 1.17.7 to 1.18.0 by @dependabot[bot] in moq/Moq.AutoMocker#444 * Bump actions/upload-artifact from 6 to 7 in the github-actions group by @dependabot[bot] in moq/Moq.AutoMocker#442 * Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 by @dependabot[bot] in moq/Moq.AutoMocker#443 * Bump NUnit from 4.5.0 to 4.5.1 by @dependabot[bot] in moq/Moq.AutoMocker#446 * Bump TUnit from 1.18.0 to 1.19.16 by @dependabot[bot] in moq/Moq.AutoMocker#447 **Full Changelog**: moq/Moq.AutoMocker@v3.6.1...v4.0.0 Commits viewable in [compare view](https://github.com/moq/Moq.AutoMocker/commits). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduces comprehensive and fluent support for mocking
HttpClientandHttpMessageHandlerwithin Moq.AutoMock, significantly simplifying the testing of HTTP-dependent code.Changes Made
HttpClientResolverhas been added toAutoMockerto automatically provideHttpClientinstances backed by a configurableHttpMessageHandler.SetupHttpGet,SetupHttpPost,SetupHttpPut,SetupHttpDelete,SetupHttpHead) allow for easy setup of specific HTTP requests based on URL, request content, or custom predicates.ReturnsResponsemethods support various response types (plain text, JSON, byte arrays, streams) with custom status codes and headers. Stream-based responses are handled to ensure reusability across multiple requests.VerifyHttpGet,VerifyHttpPost,VerifyHttpPut,VerifyHttpDelete,VerifyHttpHeadextensions are included for verifying specific HTTP request invocations.RequestMatcherandRequestPredicatefor more robust and efficient matching ofHttpRequestMessageobjects.Why These Changes
These changes aim to streamline the unit testing experience for applications consuming external HTTP services. By providing a rich, fluent, and integrated mocking API for
HttpClientandHttpMessageHandler, developers can more easily isolate and test their code without making actual network calls, leading to faster and more reliable tests. The automatic resolution ofHttpClientfurther enhances the seamless integration with AutoMocker's dependency injection capabilities.How to Test
The added unit tests in
Moq.AutoMock.Tests/DescribeHttpClient.csandMoq.AutoMock.Tests/DescribeHttpMessageHandler.csdemonstrate the usage and verify the functionality of the new HTTP mocking capabilities. These tests can be run to confirm the feature works as expected.Checklist