Codeception / Codeception/AspectMock

Test::double doesn't work properly for static methods in parent

Aperta
#120 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
PHP
Stelle
784
Fork
132
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I'm using Yii2, Codeception and AspectMock, when I'm trying to mock/double static method from parent class then original method is used instad of mocked one.

Below example:

class Yii extends \yii\BaseYii
class \yii\BaseYii has static method `error()`

```
public function testStaticMethodForParentIsMocked()
{
$appVerifier = AspectMock\Test::double(\yii\BaseYii::class, [
'error' => function () {
return 2;
}
]);

$test = \Yii::error('test'); // Original method were used
$this->assertEquals(2, $test); // this assert will fail - not correct
$appVerifier->verifyInvokedOnce('error'); // this will pass - correct
}
```

```
public function testStaticMethodForClassIsMocked()
{
$appVerifier = AspectMock\Test::double(\Yii::class, [
'error' => function () {
return 2;
}
]);

$test = \Yii::error('test'); // Mocked method were used
$this->assertEquals(2, $test); // this assert will pass - correct
$appVerifier->verifyInvokedOnce('error'); // this will pass - correct
}
```

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.