Translation of testingerrorflows.md

This commit is contained in:
forresst
2019-12-12 16:58:33 +01:00
parent 8e91f3e166
commit 80343cd58a

View File

@ -1,20 +1,20 @@
# Test error flows using your favorite test framework # Testez les flux d'erreurs en utilisant votre framework de test préféré
### One Paragraph Explainer ### Un paragraphe d'explication
Testing happy paths is no better than testing failures. Good testing code coverage demands to test exceptional paths. Otherwise, there is no trust that exceptions are indeed handled correctly. Every unit testing framework, like [Mocha](https://mochajs.org/) & [Chai](http://chaijs.com/), supports exception testing (code examples below). If you find it tedious to test every inner function and exception you may settle with testing only REST API HTTP errors. Tester les chemins « du bonheur » nest pas mieux que de tester les échecs. Une bonne couverture du code de test exige de tester des chemins inhabituels. Sinon, il n'est pas certain que les exceptions soient effectivement gérées correctement. Chaque framework de tests unitaires, comme [Mocha](https://mochajs.org/) et [Chai](http://chaijs.com/), prend en charge les tests d'exception (exemples de code ci-dessous). Si vous trouvez fastidieux de tester chaque fonction interne et chaque exception, vous pouvez vous contenter de tester uniquement les erreurs HTTP de l'API REST.
### Code example: ensuring the right exception is thrown using Mocha & Chai ### Exemple de code : s'assurer que la bonne exception est levée à l'aide de Mocha & Chai
<details> <details>
<summary><strong>Javascript</strong></summary> <summary><strong>Javascript</strong></summary>
```javascript ```javascript
describe('Facebook chat', () => { describe('Facebook chat', () => {
it('Notifies on new chat message', () => { it('Avertit en cas de nouveau message dans la discussion', () => {
const chatService = new chatService(); const chatService = new chatService();
chatService.participants = getDisconnectedParticipants(); chatService.participants = getDisconnectedParticipants();
expect(chatService.sendMessage.bind({ message: 'Hi' })).to.throw(ConnectionError); expect(chatService.sendMessage.bind({ message: 'Salut' })).to.throw(ConnectionError);
}); });
}); });
``` ```
@ -25,22 +25,22 @@ describe('Facebook chat', () => {
```typescript ```typescript
describe('Facebook chat', () => { describe('Facebook chat', () => {
it('Notifies on new chat message', () => { it('Avertit en cas de nouveau message dans la discussion', () => {
const chatService = new chatService(); const chatService = new chatService();
chatService.participants = getDisconnectedParticipants(); chatService.participants = getDisconnectedParticipants();
expect(chatService.sendMessage.bind({ message: 'Hi' })).to.throw(ConnectionError); expect(chatService.sendMessage.bind({ message: 'Salut' })).to.throw(ConnectionError);
}); });
}); });
``` ```
</details> </details>
### Code example: ensuring API returns the right HTTP error code ### Exemple de code: s'assurer que l'API renvoie le bon code erreur HTTP
<details> <details>
<summary><strong>Javascript</strong></summary> <summary><strong>Javascript</strong></summary>
```javascript ```javascript
it('Creates new Facebook group', () => { it('Crée un nouveau groupe Facebook', () => {
const invalidGroupInfo = {}; const invalidGroupInfo = {};
return httpRequest({ return httpRequest({
method: 'POST', method: 'POST',
@ -49,7 +49,7 @@ it('Creates new Facebook group', () => {
body: invalidGroupInfo, body: invalidGroupInfo,
json: true json: true
}).then((response) => { }).then((response) => {
expect.fail('if we were to execute the code in this block, no error was thrown in the operation above') expect.fail('si nous devions exécuter le code dans ce bloc, aucune erreur n\'a été levée dans l\'opération ci-dessus')
}).catch((response) => { }).catch((response) => {
expect(400).to.equal(response.statusCode); expect(400).to.equal(response.statusCode);
}); });
@ -61,7 +61,7 @@ it('Creates new Facebook group', () => {
<summary><strong>Typescript</strong></summary> <summary><strong>Typescript</strong></summary>
```typescript ```typescript
it('Creates new Facebook group', async () => { it('Crée un nouveau groupe Facebook', async () => {
let invalidGroupInfo = {}; let invalidGroupInfo = {};
try { try {
const response = await httpRequest({ const response = await httpRequest({
@ -71,8 +71,8 @@ it('Creates new Facebook group', async () => {
body: invalidGroupInfo, body: invalidGroupInfo,
json: true json: true
}) })
// if we were to execute the code in this block, no error was thrown in the operation above // si nous devions exécuter le code dans ce bloc, aucune erreur n'a été levée dans l'opération ci-dessus
expect.fail('The request should have failed') expect.fail('La requête aurait dû échouer')
} catch(response) { } catch(response) {
expect(400).to.equal(response.statusCode); expect(400).to.equal(response.statusCode);
} }