oliverdavies.uk/content/node.9aeee1e5-7b2c-4ce8-b034-ecd7531edf7c.yml

108 lines
3.6 KiB
YAML

uuid:
- value: 9aeee1e5-7b2c-4ce8-b034-ecd7531edf7c
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T09:00:05+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: 'How would you write this test name?'
created:
- value: '2024-10-22T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:05+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2024/10/22/how-would-you-write-this-test-name
langcode: en
body:
- value: |
<p>There are multiple ways I've seen people write their test method names.</p>
<p>This is the standard PSR-compliant camel-case method name:</p>
<pre><code class="php">public function testSomethingHappensWhenYouGoToThePage()
</code></pre>
<p>Some people find long camel-case names hard to read and prefer to use snake-case names:</p>
<pre><code class="php">public function test_something_happens_when_you_go_to_the_page()
</code></pre>
<p>This still works as the method name still starts with the word <code>test</code>, but you'd need to add some overrides to phpcs for it not to complain about using snake-case words.</p>
<p>Another option is to remove the <code>test</code> prefix and use an annotation:</p>
<pre><code class="php">/** @test */
public function something_happens_when_you_go_to_the_page()
</code></pre>
<p>And in newer PHPUnit versions, you can also use an attribute:</p>
<pre><code class="php">#[Test]
public function something_happens_when_you_go_to_the_page()
</code></pre>
<p>Whilst this makes the method name shorter, you need to add an additional line before each test method for the annotation or attribute.</p>
<p>Each has pros and cons, and people have their own preferences.</p>
<p>Which do you do?</p>
format: full_html
processed: |
<p>There are multiple ways I've seen people write their test method names.</p>
<p>This is the standard PSR-compliant camel-case method name:</p>
<pre><code class="php">public function testSomethingHappensWhenYouGoToThePage()
</code></pre>
<p>Some people find long camel-case names hard to read and prefer to use snake-case names:</p>
<pre><code class="php">public function test_something_happens_when_you_go_to_the_page()
</code></pre>
<p>This still works as the method name still starts with the word <code>test</code>, but you'd need to add some overrides to phpcs for it not to complain about using snake-case words.</p>
<p>Another option is to remove the <code>test</code> prefix and use an annotation:</p>
<pre><code class="php">/** @test */
public function something_happens_when_you_go_to_the_page()
</code></pre>
<p>And in newer PHPUnit versions, you can also use an attribute:</p>
<pre><code class="php">#[Test]
public function something_happens_when_you_go_to_the_page()
</code></pre>
<p>Whilst this makes the method name shorter, you need to add an additional line before each test method for the annotation or attribute.</p>
<p>Each has pros and cons, and people have their own preferences.</p>
<p>Which do you do?</p>
summary: null
field_daily_email_cta: { }