[NEW] Introduced Substitute.ForTypeForwardingTo to create substitutes that forward interceptable calls to a concrete class. This provides an easy way of implementing a test spy over an existing type. Designed and implemented by @marcoregueira in nsubstitute/NSubstitute#700 from a proposal by @wsaeed. Thanks to all who contributed to discussions of this feature.
⚠️ Note: there is no build currently available for this version due to an issue switching over to a new automated release build. We'll have a new release shortly once we sort this.
Summary of main changes:
[UPDATE] Upgrade website build to jekyll 3.9.0 and add link to edit website pages (#767, #769; thanks to @brad)
improve test platform coverage; add .NET 8 to test platforms (#742, #756; thanks to @Romfos)
source code format improvements; check format on CI (#758, ##761, #762, #763; thanks again to @Romfos)
[NEW] Support for Sourcelink and Deterministic Build. Thanks @304NotModified! (#737)
Many thanks to @alexandrnikitin, @Romfos, @brad, and @304NotModified for their contributions!
Thanks a lot to all code contributors, reviewers, and people who have raised and/or commented on issues.
[NEW] Introduced Substitute.ForTypeForwardingTo to create substitutes that forward interceptable calls to a concrete class. This provides an easy way of implementing a test spy over an existing type. Designed and implemented by @marcoregueira in nsubstitute/NSubstitute#700 from a proposal by @wsaeed. Thanks to all who contributed to discussions of this feature.
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 commands and options
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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show 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)
Bumps NSubstitute from 5.1.0 to 5.3.0.
Release notes
Sourced from NSubstitute's releases.
... (truncated)
Changelog
Sourced from NSubstitute's changelog.
Commits
45e00e3
Prep 5.3.0 release (#836)cc73901
Release build workflow (#797)4d258a2
Feature: Enable call forwarding and substitution for non virtual methods or...b8b0184
Added csharp_style_prefer_primary_constructors into editorconfig (#819)73818a6
Unable to match arguments whose type is generic, when their concrete type is ...da82bc5
Merge pull request #813 from mihnea-radulescu/bug/issue-788-Raise-EventWith-d...2ce4d66
Replaced Obsolete attributes in WhenCalled<T> with doc comments.0c0d798
When(...).Throws gives a CouldNotSetReturnDueToNoLastCallException (#803)4bd429e
Updated event raising logic to only allow internal default constructorsee276f3
Merge branch 'main' into bug/issue-788-Raise-EventWith-default-constructorDependabot 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 commands and options
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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show