Skip to content

self::assertTrue triggers TypeError in InteractWithAssertion #7

@Lreus

Description

@Lreus

Hello and thank you for this great work 🙂

I stumble on this error while writing my first tests: "PHPUnit\TextUI\Configuration\Registry::get(): Return value must be of type PHPUnit\TextUI\Configuration\Configuration, null returned"

It occurs when I use phpunit's assertTrue method but triggers no error with assertEquals.

I dumped the trace if it can be of any help :

 trace: {
    ./vendor/phpunit/phpunit/src/TextUI/Configuration/Registry.php:99 { …}
    ./vendor/phpunit/phpunit/src/Util/Exporter.php:47 { …}
    ./vendor/phpunit/phpunit/src/Util/Exporter.php:24 { …}
    ./vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php:133 { …}
    ./vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php:92 { …}
    ./vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php:58 { …}
    ./vendor/phpunit/phpunit/src/Framework/Assert.php:2024 { …}
    ./vendor/phpunit/phpunit/src/Framework/Assert.php:973 { …}
    ./vendor/soulcodex/laravel-behat/src/Addon/Traits/InteractWithAssertion.php:16 { …}
    ./tests/Behat/Features/Home/HomeContext.php:26 {
      Tests\behat\features\home\HomeContext->iShouldSeeTheMessage($message)
      › try {
      ›     self::assertTrue($hasContent);
      › } catch (\TypeError $e) {
    }
    ./vendor/behat/behat/src/Behat/Testwork/Call/Handler/RuntimeCallHandler.php:110 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Call/Handler/RuntimeCallHandler.php:64 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Call/CallCenter.php:138 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Call/CallCenter.php:96 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/Runtime/RuntimeStepTester.php:125 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/Runtime/RuntimeStepTester.php:73 { …}
    ./vendor/behat/behat/src/Behat/Behat/Hook/Tester/HookableStepTester.php:74 { …}
    ./vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingStepTester.php:76 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/StepContainerTester.php:59 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/Runtime/RuntimeScenarioTester.php:76 { …}
    ./vendor/behat/behat/src/Behat/Behat/Hook/Tester/HookableScenarioTester.php:74 { …}
    ./vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingScenarioTester.php:106 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/Runtime/IsolatingScenarioTester.php:69 { …}
    ./vendor/behat/behat/src/Behat/Behat/Tester/Runtime/RuntimeFeatureTester.php:84 { …}
    ./vendor/behat/behat/src/Behat/Behat/Hook/Tester/HookableFeatureTester.php:72 { …}
    ./vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingFeatureTester.php:74 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Tester/Runtime/RuntimeSuiteTester.php:63 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Hook/Tester/HookableSuiteTester.php:73 { …}
    ./vendor/behat/behat/src/Behat/Testwork/EventDispatcher/Tester/EventDispatchingSuiteTester.php:75 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Tester/Runtime/RuntimeExercise.php:71 { …}
    ./vendor/behat/behat/src/Behat/Testwork/EventDispatcher/Tester/EventDispatchingExercise.php:73 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Ordering/OrderedExercise.php:80 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Tester/Cli/ExerciseController.php:149 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Tester/Cli/ExerciseController.php:108 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Cli/Command.php:63 { …}
    ./vendor/symfony/console/Command/Command.php:279 { …}
    ./vendor/symfony/console/Application.php:1029 { …}
    ./vendor/symfony/console/Application.php:316 { …}
    ./vendor/behat/behat/src/Behat/Testwork/Cli/Application.php:124 { …}
    ./vendor/symfony/console/Application.php:167 { …}
    ./vendor/behat/behat/bin/behat:34 { …}
    ./vendor/bin/behat:119 { …}

Configuration:

  • laravel 11
  • php 8.3
  • artisan's web server
  • ubuntu 24.04 noble

Steps to reproduce

  • make a fresh install of laravel 11
  • implement a simple controller accessible on root url providing a blade View with a simple Hello World title.
  • implement a feature file home.feature:
Feature: start-up

    Scenario: visiting home page
        Given I go to home page
        Then I should see the message "Hello you !"
  • implement new context :
class HomeContext extends Context
{
    /**
     * @Given I go to home page
     */
    public function iGoToHomePage()
    {
        $this->visitUrl('http://127.0.0.1:8000');
    }

    /**
     * @Then I should see the message :message
     */
    public function iShouldSeeTheMessage($message)
    {
        $hasContent = $this->session()->getPage()->hasContent($message);

        self::assertTrue($hasContent);
    }
}
  • start artisan server php artisan serve
  • run behat ./vendor/bin/behat

I hope you will be able to help and thank you in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions