Skip to main content

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.

Was this interesting?

Subscribe to my daily newsletter for software professionals on software development and delivery, Drupal, DevOps, community, and open-source.

About me

Picture of Oliver

I'm a certified Drupal Triple Expert and former Drupal Association staff member with 18 years of experience, a Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.