Multiple assertions are fine in a unit test
> <i>The excellent book xUnit Test Patterns describes a test smell named Assertion Roulette. It describes situations where it may be difficult to determine exactly which assertion caused a test failure.</i><p>How is that even possible in the first place?<p>The entire job of an assertion is to wave a flag saying "here! condition failed!". In programming languages and test frameworks I worked with, this typically includes providing <i>at minimum</i> the expression put in the assertion, <i>verbatim</i>, and precise coordinates of the assertion - i.e. name of the source file + line number.<p>I've never seen a case where it would be hard to tell <i>which assertion failed</i>. On the contrary, the most common problem I see is knowing which assertion failed, but not how the code got there, because someone helpfully stuffed it into a helper function that gets called by other helper functions in the test suite, and the testing framework doesn't report the call stack. But it's not that big of a deal anyway; the main problem I have with it is that I can't gleam the exact source of failure from CI logs, and have to run the thing myself.