Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Second and next requests in tests reloads entities from doctrine entity manager

Ouverte
#18 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
php

Piste de recherche

Commencez par le module Doctrine2 et sa dépendance Symfony, en utilisant le flux de test fourni avec rebootable_client activé afin de reproduire les changements d’identité de l’entité entre les requêtes. Suivez le cycle de vie de l'entity manager et de la requête, puis vérifiez que l’instance d’entité récupérée initialement est réutilisée lors de la deuxième requête et des suivantes sans casser le workaround documenté de nouvelle récupération.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

What are you trying to achieve?

All requests should use same instances of entities during the test.

What do you get instead?

Second and subsequent requests reloads entities which causes instances within test to be different from those that are used within those requests.

<?php

public function test(\Codeception\Actor $tester)
{
	$instance = $tester->grabEntityFromRepository(Foo::class, ['id' => 1]); // spl_object_hash: 000000006cf7be51000000007baa4f48
	$tester->sendPUT('/foo'); // spl_object_hash: 000000006cf7be51000000007baa4f48 same as first
	$tester->sendPUT('/foo'); // spl_object_hash: 000000006cf7b6b0000000007baa4f48 different than previous
	$tester->sendPUT('/foo'); // spl_object_hash: 000000006cf7b5c0000000007baa4f48 different than previous

	// $instance here has different values than those used within second and any subsequent request
}
Workaround

In order to get latest version of the entity we have to "re-grab" it from repository:

<?php
$instance = $tester->grabEntityFromRepository(Foo::class, ['id' => 1]); // spl_object_hash: 000000006cf7b5c0000000007baa4f48 is same as in last request

But it would be better to reuse the first instance the same way first request does.

Details
  • Codeception version: 2.5.1
  • PHP Version: 7.1.24
  • Operating System: Linux
  • Installation type: Composer
  • Suite configuration:
modules:
    enabled:
        - Asserts: ~
        - Symfony:
            cache_router: true
            rebootable_client: true
        - REST:
            url: /api
            depends: Symfony
        - Doctrine2:
            depends: Symfony
        - \Helper\Api: ~
    disabled:
        - PhpBrowser
        - WebDriver
Langage dominant
PHP
Étoiles
4
Forks
2
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Codeception/module-doctrine

Toutes les issues de Codeception/module-doctrine

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.