Repository navigation
Test that propertyNotExists() passes when the property is absent - #369
Merged
shadowhand merged 1 commit intoOct 5, 2026
Merged
shadowhand merged 1 commit into
shadowhand merged 1 commit into
Conversation
shadowhand
approved these changes
Oct 5, 2026
Collaborator
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Adds one row to
AssertTest::getTests():Why
Every existing
propertyNotExistsrow expects a failure (the property exists). No row covers the passing case, where the property is absent. Its siblings cover both sides:propertyExistshas passing and failing rows, andmethodNotExistshastruerows forstdClass.So a regression that makes
propertyNotExists()reject every object goes unnoticed. For example, either of these changes to the condition inAssert::propertyNotExists()leaves the whole suite green:The new row mirrors the existing
propertyExistsfailing case ('foo'on an object that only hasproperty). Through the shared data provider it also exercises thenullOr*,all*and custom-message variants.Verification
composer run test: 4913 tests, 5830 assertions (was 4906 / 5823)composer run cs-check: 0 files to fixcomposer run static-analysis: no errorsInvalidArgumentException), all on the newpropertyNotExistsrowI found this while experimenting with Supertest, a tool for evaluating test effectiveness using mutation testing and test-harness mutilation.