Test::double doesn't work properly for static methods in parent
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par les deux méthodes de test de l’issue et reproduisez la différence entre le doublage de \yii\BaseYii et de \Yii. Suivez la façon dont l’appel statique via la classe parente est résolu et comparez-la au cas de la classe directe ; c’est terminé lorsque \Yii::error('test') renvoie la valeur simulée, tandis que la vérification de l’invocation réussit toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
}
- Langage dominant
- PHP
- Étoiles
- 785
- Forks
- 132
- 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/AspectMock
-
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
Codeception/AspectMock#208 · 2 commentaires · 5 réactions ·
-
AspectMock не мокает объектOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
Codeception/AspectMock#206 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
Codeception/AspectMock#203 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 35/100
Codeception/AspectMock#202 · 5 commentaires · 2 réactions ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
Codeception/AspectMock#201 · 1 commentaire ·
Toutes les issues de Codeception/AspectMock
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
grokability/snipe-it#19857 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 92/100
Les mainteneurs répondent en général sous 1 jour
-
Authentication / Authorization Feature: Volunteer
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
WordPress/mcp-adapter#399 ·
Les mainteneurs répondent en général sous 1 jour