microsoft / microsoft/VFSForGit

Stop using "mock:" in unit test paths

Open
#1,572 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

affects: tests
Dominant language
C#
Stars
6.1k
Forks
474
Avg merge
2d 4h
Merged PRs (30d)
8

Description

Helper methods like Path.GetDirectoryName(...) don't work correctly with "mock:" (see discussion here: https://github.com/microsoft/VFSForGit/pull/1570#discussion_r342877006).

Rather than using mock:/ or mock:\ we should switch to paths that are properly rooted but will (probably) not exist on the system.

Examples:

  • Windows: B:\ (reserved for second floppy drive, probably not present)
  • POSIX: /vfs4gmock

As part of this change LooseObjectsStep.CountLooseObjects should be updated to use Path.GetDirectoryName

Contributor guide

Open the contributing guide

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.

Research direction

Search the unit tests for mock: paths and inspect LooseObjectsStep.CountLooseObjects, the entry point named in the issue. Review the linked discussion for context, then replace the mock paths with rooted Windows and POSIX paths and update CountLooseObjects to use Path.GetDirectoryName. Run the affected unit tests and confirm they pass on both path styles.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
testing-qa
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.