Writing custom assertions in your tests

Writing custom assertions is a great way to clean up your test code.

Here's an example from one of my client Drupal projects:

private static function assertProductVariationHasPrice(ProductVariationInterface $productVariation, string $expectedPrice): void {
self::assertSame(
actual: $productVariation->getPrice()->getNumber(),
expected: $expectedPrice,
);
}

This one wraps a single assertion, but they could also include multiple assertions or additional steps.

Here's the thing

A custom assertion is a simple function but it makes the test code more readable and less repetitive.