Codeception / Codeception/Stub

Expected::exactly should have ability to change callback method per times called

Ouverte
#30 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
PHP
Étoiles
301
Forks
19
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

#### What are you trying to achieve?
Http client send method is called 2 times on a test
I would like to make different response objects for each of them
on one of them I would also like to have asserts
#### What do you get instead?
RN it is impossible to have different callbacks for consecutive calls
> Provide console output if related. Use `-vvv` mode for more details.

> Provide test source code if related

```php
$oauth2Provider->setHttpClient($this->construct(Client::class, [], [
'send' => Expected::exactly(2,
function (RequestInterface $request) {
return new Response(200, [
'content-type' => 'application/json'
], '{"access_token": "access", "expires_in": 3600, "refresh_token": "refresh"}');
},
function (RequestInterface $request) {
//assertions go here

return new Response(200, [
], 'response body goes here');
}
]))
]));
```
### Details

* Codeception version:
* PHP Version: 7.4.6
* Operating System: Ubuntu
* Installation type: Composer
* List of installed packages (`composer show`)
* Suite configuration:

```yml
# paste suite config here
```
Addittional info
RN I do this
```php
$oauth2Provider->setHttpClient($this->construct(Client::class, [], [
'send' => Expected::exactly(2, Closure::fromCallable(new MultiCallable([
function (RequestInterface $request) {
return new Response(200, [
'content-type' => 'application/json'
], '{"access_token": "access", "expires_in": 3600, "refresh_token": "refresh"}');
},
function (RequestInterface $request) {
//asserts go here

return new Response(200, [
], 'response body goes here');
}
])))
]));
```

```php
methods = $methods;
}

public function __invoke(...$args)
{
$method = array_shift($this->methods);

return call_user_func_array($method, $args);
}
}
```

Guide de contribution

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

Piste de recherche

Commencez par localiser l’implémentation de Expected::exactly dans le dépôt Codeception Stub et examinez la manière dont les invocations de callbacks sont actuellement gérées. Utilisez l’exemple de l’issue avec deux callbacks comme cas d’acceptation : les appels consécutifs doivent recevoir des réponses différentes, et un callback doit pouvoir effectuer des assertions avant de retourner un résultat.

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

Évaluation

Stack technique
php
Domaine
testing
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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