chore(deps): update NSubstitute to 6.2.0

Open
#592 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
72/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
csharp
Domain
testing

Research direction

Start with Directory.Packages.props and tests/Directory.Build.props to confirm where NSubstitute is centrally versioned and used. Check that version 6.2.0 is available on NuGet, then build and run tests/CommunityToolkit.Datasync.Client.Test and tests/CommunityToolkit.Datasync.Server.Test first. Update the package version and make minimal test changes for any failures; done means all tests pass locally and in CI with the same test counts.

Written by the indexing model from the issue text.

Description

dependencies Infrastructure

Part 6 of the outdated-package sweep (dotnet-outdated 4.8.1, 2026-11-05). Major upgrade of NSubstitute used across all test projects.

Current state

NSubstitute 5.3.0 in root Directory.Packages.props; referenced for every project under tests/ via tests/Directory.Build.props. Target: 6.2.0.

What changes

  • 6.0.0: targets .NET 8 / .NET Standard 2.0 (fine for us on net10.0); improved custom argument matcher support (Arg.Is accepts arg matchers); new ArgMatchers.Matching; some breaking changes for custom argument matchers.
  • 6.1.0: reverted the nullability annotations introduced in 6.0 (they caused caller problems), so the public API is non-nullable-annotated again. Avoid 6.0.x; go straight to 6.2.
  • 6.2.0: improved generic call matching (generic return-type assignability no longer used for matching), trusted NuGet publishing.
    Release notes: https://github.com/nsubstitute/NSubstitute/releases

Expected impact is small; the most likely breakage is tests that mock generic methods and relied on return-type assignability matching, or custom IArgumentMatcher implementations.

Steps

  1. Bump NSubstitute to 6.2.0 (confirm it exists on NuGet).
  2. dotnet build then dotnet test. Run first the projects most likely to use mocks heavily (tests/CommunityToolkit.Datasync.Client.Test, tests/CommunityToolkit.Datasync.Server.Test).
  3. Fix any failures with minimal test changes; do not alter production code.
  4. Dispatch build-library.yml on the fork with --ref <branch>.

Acceptance criteria

  • Tests pass with NSubstitute 6.2.0 locally and in CI, with the same test counts as before.
  • PR title: chore(deps): update NSubstitute to 6.2.0.
Dominant language
C#
Stars
184
Forks
48
Avg merge
21m
Merged PRs (30d)
7

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CommunityToolkit/Datasync

All issues in CommunityToolkit/Datasync

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.