Codeception / Codeception/module-doctrine

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

Aperta
#18 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
PHP
Stelle
4
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

#### 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
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
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:

```yml
modules:
enabled:
- Asserts: ~
- Symfony:
cache_router: true
rebootable_client: true
- REST:
url: /api
depends: Symfony
- Doctrine2:
depends: Symfony
- \Helper\Api: ~
disabled:
- PhpBrowser
- WebDriver
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.