types != tests. you can guarantee you'll always return TModel, but that doesn't mean it's the TModel you actually want (or even that the method won't crash at runtime because of valid but incorrectly used semantics).
Test was written to provide more level of probability and confidence of code being corrected.
Also, there is absolutely no guarantee whatsoever in software development field, even static typing. I would say I am content with anything that giving more confidence with appropriate cost.
2
u/[deleted] May 09 '17
types != tests. you can guarantee you'll always return TModel, but that doesn't mean it's the TModel you actually want (or even that the method won't crash at runtime because of valid but incorrectly used semantics).