One thing their teams like is the idea of constraints: now they always use the
org.jmock.MockObjectTestCase
base class rather than junit.framework.TestCase
, even when they aren't mocking anything out! Here's an example from Tom White: We can use constraints to construct more flexible assertions:In a subsequent entry, White introduces the concept of anaphor, a word used to avoid repetition. When judiciously used, in a situation where there is no ambiguity to obscure the reference, it can increase test readability.
assertThat(a, eq("3"));
is more readable and understandable than:
assertEquals("3", a);
You can read it as "assert that a eq(uals) 3".
Small tricks like changing IDE settings are also used increase readability.
Robert Chatley has recently taken the idea of literate testing further and applied it to functional (acceptance) tests.
And now, we've come full circle: Chatley tells us that Marick is in the sentence structure game, now, too :-)
Community comments
TestNG asserts are readable too
by Alex Popescu,
TestNG asserts are readable too
by Alex Popescu,
Your message is awaiting moderation. Thank you for participating in the discussion.
TestNG has done a similar shift a long time ago. JUnit users were used with assertions in the form: assertEquals(expectedValue, computedValue [, reason]). We have considered that it is more readable (even if some of TestNG users considered it dangerous) as in assertEquals(computedValue, expectedValue [, reason]) with its English form: "assert that computedValue equals the expectedValue because reason". However, we still offer the JUnit assertion mode (see Assert and AssertJUnit).
./alex
--
.w( the_mindstorm )p.