Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Aug 12, 2025

Added a comprehensive section to the README explaining the relationship between Testably.Abstractions and TestableIO.System.IO.Abstractions to address user confusion about when to use each library.

What this PR addresses

Users were confused about:

  • Whether the two libraries are intended to be used together
  • If one is a replacement for the other
  • When to choose one over the other

Changes made

New section: "Relationship with TestableIO.System.IO.Abstractions" that includes:

  1. Interface compatibility explanation: Both libraries use the same IFileSystem interfaces, so production code doesn't need changes when switching between them

  2. Decision criteria: Clear guidance on when to use each library:

    • Testably.Abstractions: For advanced scenarios (FileSystemWatcher, SafeFileHandles, multiple drives), additional abstractions (ITimeSystem, IRandomSystem), cross-platform simulation, and active development
    • TestableIO: For basic mocking, direct entity manipulation, and established codebases
  3. Migration guide: Step-by-step instructions with code examples showing how to switch from TestableIO to Testably:

    // Before (TestableIO)
    var fileSystem = new MockFileSystem();
    fileSystem.AddDirectory("some-directory");
    fileSystem.AddFile("some-file.txt", new MockFileData("content"));
    
    // After (Testably)
    var fileSystem = new MockFileSystem();
    fileSystem.Directory.CreateDirectory("some-directory");
    fileSystem.File.WriteAllText("some-file.txt", "content");

The documentation maintains a respectful tone toward both projects while clearly explaining their different capabilities and use cases.

Fixes #471.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Testably vs. TestableIO? docs: clarify relationship with TestableIO.System.IO.Abstractions Aug 12, 2025
Copilot AI requested a review from vbreuss August 12, 2025 19:35
Copilot finished work on behalf of vbreuss August 12, 2025 19:35
@vbreuss vbreuss marked this pull request as ready for review August 12, 2025 19:45
Copilot AI review requested due to automatic review settings August 12, 2025 19:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds documentation to clarify the relationship between Testably.Abstractions and TestableIO.System.IO.Abstractions, addressing user confusion about when to use each library.

  • Explains interface compatibility between the two libraries
  • Provides clear decision criteria for choosing between them
  • Includes a migration guide with code examples

@vbreuss vbreuss enabled auto-merge (squash) August 12, 2025 19:46
@sonarqubecloud
Copy link

@vbreuss vbreuss merged commit d172459 into main Aug 12, 2025
14 checks passed
@vbreuss vbreuss deleted the copilot/fix-471 branch August 12, 2025 20:12
@github-actions
Copy link

This is addressed in release v4.3.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Testably vs. TestableIO?

2 participants