Second and next requests in tests reloads entities from doctrine entity manager
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
- Domaine
- databases, testing-qa
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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Codeception/module-doctrine
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Codeception/module-doctrine#2 · 1 commentaire · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 64/100
Codeception/module-doctrine#6 · 1 commentaire ·
Toutes les issues de Codeception/module-doctrine
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
nextcloud/integration_openai#446 ·
-
bug customer-reported
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
MagnaCapax/PMSS#1101 ·
Les mainteneurs répondent en général sous 5 jours
-
InvoiceSettled is answered 200 when the invoice cannot be re-fetched, so BTCPay never redelivers itOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
btcpayserver/woocommerce-greenfield-plugin#93 ·
Les mainteneurs répondent en général sous 1 jour
-
kind/bug status/triage
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
🐛 [Bug] Bulk CSV import stores hide_from_combined_view=FALSE as a string, which hides every account from Sent, Junk, Trash and DraftsPeut-être pris @exSnake l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour