Codeception / Codeception/AspectMock

Unable to instrument classes in the /vendor directory

Ouverte
#139 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
PHP
Étoiles
784
Forks
132
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I was able to get AspectMock to instrument my own classes in my directory but I can not get it to work on classes in the composer `/vendor` directory....

Is this even possible?

I tried adding vendor to my `includePaths` but I get the issue in #112

My bootstrap looks basically like this:
```php
require_once __DIR__.'/../vendor/autoload.php'; // composer autoload

$kernel = \AspectMock\Kernel::getInstance();
$kernel->init([
'debug' => true,
'appDir' => __DIR__.'/..',
'cacheDir' => __DIR__.'/_data/aopcache',
'includePaths' => [
__DIR__.'/../repo'
],
'excludePaths' => [
__DIR__,
]
]);
```

Sample of my test code:
```php
$testDataStr = 'var=1&var=2';
$paypalIPN = test::double(new \PayPal\IPN\PPIPNMessage($testDataStr), [
'getRawData' => ['Returned test double'],
]);
$this->assertTrue($paypalIPN->class->hasMethod('getRawData'));
$testData = $paypalIPN->getRawData();
$paypalIPN->verifyInvoked('getRawData'); // fails
```
fails with:
```Expected PayPal\IPN\PPIPNMessage->getRawData to be invoked but it never occurred. Got:```

**Versions**
php 5.6.30
codeception/aspect-mock:2.0.1 @b7f5c50da89419824102400bb4c71988ec33044f
goaop/framework:2.1.2 @6e2a0fe13c1943db02a67588cfd27692bddaffa5
goaop/parser-reflection:1.4.0 @adfc38fee63014880932ebcc4810871b8e33edc9

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par la configuration de bootstrap présentée dans l’issue et reproduisez le test avec PayPal\IPN\PPIPNMessage, en vous concentrant sur includePaths, excludePaths et l’autoloading de Composer. Suivez pourquoi test::double n’intercepte pas getRawData pour la classe de /vendor. C’est terminé lorsque l’invocation est interceptée et que verifyInvoked('getRawData') réussit.

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

Évaluation

Stack technique
php
Domaine
testing
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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