#64324 closed task (blessed) (fixed)
Tests: Reduce usage of assertEquals for 7.0
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | 7.0 | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Build/Test Tools | Keywords: | has-patch has-unit-tests |
| Focuses: | coding-standards | Cc: |
Description
Follow-up to:
- #63169 (6.9)
- #62278 (6.8)
- #61573 (6.7)
- #60706 (6.6)
- #59655 (6.5)
- #58956 (6.4)
- #57855 (6.3)
- #56800 (6.2)
- #55654 (6.1)
- #54726 (6.0)
- #53364 (5.9)
- #52482 (5.8)
- #38266 (5.7)
The assertEquals() test method does not check that the types of the expected and actual values match. This can hide subtle bugs especially when the values are falsey.
Tasks:
- Switch to using
assertSame()when the type of the value in the assertion is important - Replace overall usage of
assertEquals()with type-strict assertion methods, with the aim of potentially removing its usage altogether
To help ease the effort of merging tests, changes should also be made upstream in the Gutenberg repository.
Change History (18)
This ticket was mentioned in PR #1768 on WordPress/wordpress-develop by @costdev.
6 months ago
#1
- Keywords has-patch has-unit-tests added
This ticket was mentioned in PR #4132 on WordPress/wordpress-develop by @Rahmohn.
6 months ago
#2
This PR updates the test test_wp_count_attachments_should_cache_the_result to check the properties of the object returned instead of checking the object with assertEquals. That way, we guarantee the expected properties of the object.
Trac ticket:
https://core.trac.wordpress.org/ticket/64324
https://core.trac.wordpress.org/ticket/63169
#10
@
3 months ago
- Resolution set to fixed
- Status changed from new to closed
Opened #64895 for the 7.1 release cycle. With 7.0 RC1 due out today, going to close this out. This can be reopened or referenced if there are more changes needed related to this during 7.0.
This ticket was mentioned in PR #11602 on WordPress/wordpress-develop by @sagardeshmukh.
8 weeks ago
#11
Replaces loose assertEquals() with assertSame() for scalar integer ID comparisons in the get_adjacent_post() and get_boundary_post() tests.
Object comparisons against full WP_Post instances are intentionally kept as assertEquals(), since assertSame() uses strict === comparison which requires the same PHP object instance, that would fail for objects fetched via separate database calls.
This ticket was mentioned in PR #11605 on WordPress/wordpress-develop by @sagardeshmukh.
8 weeks ago
#12
Migrates assertEquals() to assertSame() in tests/phpunit/tests/ai-client/wpAiClientPromptBuilder.php.
All 78 assertEquals() calls compare scalar values (strings, ints, floats, or string arrays), so strict === comparison is appropriate. Two assertions comparing timeout values were updated to use float literals (30.0, 45.0) to match the actual return type of getTimeout().
172 tests, 439 assertions — all passing.
@SergeyBiryukov commented on PR #11602:
7 weeks ago
#14
Thanks for the PR! Merged in r62247.
@SergeyBiryukov commented on PR #11605:
7 weeks ago
#16
Thanks for the PR! Merged in r62248.
This PR replaces
assertEquals()with more appropriate, stricter assertions where possible and without making any changes to source.For easier reviewing, commits have been separated based on the replacement assertion and any additional changes required to implement the stricter assertion.
Trac ticket: https://core.trac.wordpress.org/ticket/64324
Trac ticket: https://core.trac.wordpress.org/ticket/63169
Trac ticket: https://core.trac.wordpress.org/ticket/62278
Trac ticket: https://core.trac.wordpress.org/ticket/61573
Trac ticket: https://core.trac.wordpress.org/ticket/60706
Trac ticket: https://core.trac.wordpress.org/ticket/59655
Trac ticket: https://core.trac.wordpress.org/ticket/55654
Trac ticket: https://core.trac.wordpress.org/ticket/54726
Track ticket: https://core.trac.wordpress.org/ticket/63169