3 ms·
> Returns a `String` instead of a type which disallows the formulation of the problematic `assertEquals` to begin with. I'm not sure what the best attribution
by DimmieMan 1y ago
> Returns a `String` instead of a type which disallows the formulation of the problematic `assertEquals` to begin with.
I'm not sure what the best attribution would be but "Make illegal states unrepresentable" would be a fantastic addition to this list pairing well with "parse, don't validate".
A stricter type would force you to parse the URL and would either fix the error (because cleaning trailing/leading slashes might make sense here) or throw a clear error from the parser.
It can be slightly more verbose when you just want to write a string in your test for convenience but can (and does) save a lot of debugging pain for less trivial cases.
- AdieuToLogic 1y ago>> Returns a `String` instead of a type which disallows the formulation of the problematic `assertEquals` to begin with. > I'm not sure what the best attribution would be but "Make illegal states unrepresentable" would be a fantastic addition to this list pairing well with "parse, don't validate". The phrases I have seen describing using types to make illegal states incapable of being represented are "programming with types"[0] and "type level programming"[1]. HTH 0 - https://www.manning.com/books/programming-with-types https://www.manning.com/books/programming-with-types 1 - https://rebeccaskinner.net/posts/2021-08-25-introduction-to-type-level-programming.html https://rebeccaskinner.net/posts/2021-08-25-introduction-to-...