Verify is heavily influenced by ApprovalTests. It is deigned to be an alternative to ApprovalTests.
ApprovalTests uses the stack trace and information from debug symbols. This results in a requirement for test assembly to have symbols enable and not be optimized.
Verify has no dependency on the stack trace and debug symbols.
The act of verification requires access to the file system and (possibly) the clipboard which both require blocking IO. As such the call to Verify()
is async.
ApprovalTests is, in the majority, configured via attributes.
Verify is configured using explicit code APIs and conventions.
When a test fails verification:
- The command to accept the new verified is copied to the clipboard.
- The difference between the received and verified files is displayed in a diff tool.
In ApprovalTests both these features are opt-in through attributes.