Open TavoNiievez opened 3 years ago
I like the idea of this, I often have to chain haveInRepository()
with grabEntityFromRepository()
.
For the sake of backwards compatibility (and perhaps consistency) I would be in favour of adding a new method (such as haveInRepositoryAndReturn()
, haveInRepositoryAndReturnEntity()
, or even haveAndGrabInRepository()
) to differentiate between the methods and give developers the option to whether they want the PK or entity returned.
@Naktibalda @DavertMik
In many tests i have come across situations like this:
Use
haveInRepository
, and then be forced to usegrabEntityFromRepository
to get the entity i just persisted. If i want to check that an entity listener is working, for example, i always have to execute those two statements.My point is that this would be more useful:
if i wanted to know the primary key of that entity, i would simply write:
In this context, the ORM is useful for its ability to abstract the details of the persistence process and leave it to me as a programmer to worry more about the data i am working with.
I'm not saying that getting the primary key is not useful, i am saying that it is much more useful to get the entity, where there is more information to work with in my tests, including the persistence identifier.
https://github.com/Codeception/module-doctrine2/blob/1ae32bdcd77abde4a583462f5949fc86b9bda2a2/src/Codeception/Module/Doctrine2.php#L504-L530
Please let me know your opinions about it.