Little point of history: the xUnit family of unit testing frameworks originated in *Smalltalk* (SUnit), which is why the graphic user interface for running tests was a standard part of it. It wasn't just that you could drive tests from a graphic terminal, it was that testing was *integrated* with the IDE. The Wikipedia page on jUnit gets this right, acknowledging the priority of SUnit. Credit should be given to a specific person: Kent Beck, author of the original version of SUnit. It would be good for the HUnit document to give credit where credit is due. AS for the interface, what is the problem? It's always <HUnit function> "some string" <other arguments>. It doesn't really matter very much whether the observed or expected value is presented next in assertEqual, but it is documented as expected-then-observed. On Wed, 2 Mar 2022 at 06:57, Daneel Yaitskov <dyaitskov@gmail.com> wrote:
Hi List,
I noticed, that I pay more attention than I should, when working with assertions, because I am not sure about argument order i.e. whether the expected value goes first or vice-versa. Does anybody have similar thought?
Such subtle detail should be easy to grasp with regular practice, but I observe difficulties and I suspect that there is a logical reason for that.
Unit tests appeared long time ago in Java and spread over all languages. HUnit library inherited de facto standard assert function name and signature. I don't know reasoning behind original signature.
I spell "assertEqual" expression as: "Assert that x equals to y" "y" sounds like a model value (i.e. expected value).
In assignments "x <- y" y is the model value, because it defines "x". You get "x" - value on the left not on the right.
Similar issue with test fixing - I always have to check first, that an expected value is actually one. There is no type safety preventing mixing arguments. I had to open and comprehend a source file with test, because test log is not 100% safe.
--
Best regards, Daniil Iaitskov
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.