- Provide a fluent writing experience for unit tests
As a Developer,
I want to be able to rely on the autocompletion when I write test checks
So that I can write them in a fluent manner, and without any hesitation about the kind of check that is possible and available regarding my current System Under Test (SUT).
- Provide a fluent reading experience for unit tests
As a Developer,
I want to be able to read checks close as much as possible to plain English,
So that my unit tests are easier to understand for me and the other people (even for non-technical ones).
- Provide a fluent troubleshooting experience for unit tests
As a Developer,
I want to be able to see clear and complete error messages when a test fails,
So that I can understand the reasons and to fix it without being forced to launch it with a Debugger.
As a Developer,
I want to be able to have the expected and the current values properly aligned in two different lines on the test failure error messages,
So that I can compare the two values and be able to fix the test without being forced to launch it with a Debugger.
- Provide an error-proof experience for unit tests
As a Developer,
I don't want to be able to switch or to get confused about the order of "expected" and SUT values,
So that all my unit tests error message are reliable when my tests are failing.
- Provide an helpful way to reverse engineer legacy code
As a Developer,
I want to be able to temporarily write an on-purpose failing test assert on a legacy code method,
So that I can understand its return within a clear check error message. check error message also well formated so that I can easily instanciate arrays and collections type initializers.