Argument order decides how readable the failure is

PHPUnit takes the expected value first and the actual second, and getting them the wrong way round produces a test that passes and fails identically — but reports the failure backwards.

// right
$this->assertSame(4900, $order->total());
// Failed asserting that 5100 is identical to 4900.

// wrong, and the message now lies about which is which
$this->assertSame($order->total(), 4900);
// Failed asserting that 4900 is identical to 5100.

At three in the morning, reading a failure message that has the expected and actual reversed costs real time. The other habit worth forming is assertSame over assertEquals by default: the latter compares loosely, so "4900" equals 4900 and a string creeping into a money calculation passes the test that was supposed to catch it.