Add daily email for 2024-05-08
Assertions aren't just for tests
This commit is contained in:
parent
acfd4c5704
commit
5910e4eb0e
42
source/_daily_emails/2024-05-08.md
Normal file
42
source/_daily_emails/2024-05-08.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: Assertions aren't just for tests
|
||||
date: 2024-05-08
|
||||
permalink: archive/2024/05/08/assertions-arent-just-for-tests
|
||||
tags:
|
||||
- software-development
|
||||
- drupal
|
||||
- php
|
||||
- automated-testing
|
||||
cta: ~
|
||||
snippet: |
|
||||
`assert()` isn't just for automated tests.
|
||||
---
|
||||
|
||||
If you've written or seen automated tests in PHP, you'll have seen lines like this:
|
||||
|
||||
```php
|
||||
self::assertTrue(FALSE);
|
||||
```
|
||||
|
||||
But, did you know assertions can be used outside of tests.
|
||||
|
||||
PHP has an `assert()` function that can be used anywhere.
|
||||
|
||||
For example, if I had this code:
|
||||
|
||||
```php
|
||||
$node = Node::load(1);
|
||||
|
||||
assert($node instanceof NodeInterface);
|
||||
assert($node->bundle() === 'page');
|
||||
```
|
||||
|
||||
I know `$node` is a node with the correct bundle type and I can continue.
|
||||
|
||||
I've made my assumptions explicit.
|
||||
|
||||
If `$node` is not the correct type or returns an unexpected bundle, the assertion will fail and an Exception will be thrown.
|
||||
|
||||
I think this is better than assuming or hoping the values are as you expect, and it also makes the intent of the code much easier to see and understand.
|
||||
|
||||
If you haven't tried `assert()` before, give it a try.
|
Loading…
Reference in a new issue