A snapshot testing tool for .NET that simplifies assertions of complex data models and documents.
Verify is a snapshot testing library for .NET that simplifies the verification of complex data models, objects, and documents. It works by serializing test results into snapshot files and comparing them across test runs, helping developers catch unintended changes without writing extensive assertion code. The tool integrates with popular .NET test frameworks and diff tools to streamline the testing workflow.
.NET developers and testers who need to verify complex data structures, API responses, or document outputs in unit and integration tests. It is particularly useful for teams working on applications with intricate object models or those requiring consistent output validation.
Verify reduces boilerplate assertion code and improves test reliability by automating snapshot comparison. Its integration with diff tools and support for multiple test frameworks makes it a flexible and developer-friendly choice for snapshot testing in the .NET ecosystem.
Verify is a snapshot testing tool that simplifies the assertion of complex data models and documents.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates seamlessly with all major .NET test runners including NUnit, xUnit, and MSTest, as evidenced by dedicated NuGet packages and code snippets in the README.
Automatically launches external diff tools to visualize differences between received and verified snapshots, streamlining the change review process as shown in the workflow diagrams.
Supports a broad range of plugins for verifying documents, images, databases, and UI components, extending functionality beyond basic object serialization, as listed in the plugins section.
Includes overloads for Task<T>, ValueTask<T>, and IAsyncEnumerable<T>, making it easy to test asynchronous code without extra boilerplate, demonstrated in the async usage examples.
Requires manual setup like adding .gitignore rules for *.received.* files and configuring .gitattributes for text file encoding, which adds overhead to project initialization.
Some test frameworks like Fixie need custom execution code, and Expecto has unsupported APIs (e.g., for parameters), limiting out-of-the-box functionality as noted in the README.
Verified snapshot files must be committed to source control, potentially leading to repository bloat and merge conflicts in large or long-running projects.