diff --git a/README.russian.md b/README.russian.md index 8db23b21..0cb10f2e 100644 --- a/README.russian.md +++ b/README.russian.md @@ -188,7 +188,7 @@ **Иначе:** Без тестирования, будь то автоматически или вручную, вы не сможете полагаться на свой код для возврата правильных ошибок. Без значения ошибок -- нет обработки ошибок. -🔗 [**Подробнее: тестирование потоков ошибок**](/section/errorhandling/testingerrorflows.md) +🔗 [**Подробнее: Тестируйте потоки ошибок с использованием вашей любимой тестовой среды**](/section/errorhandling/testingerrorflows.russian.md)

diff --git a/sections/errorhandling/testingerrorflows.russian.md b/sections/errorhandling/testingerrorflows.russian.md new file mode 100644 index 00000000..4b0429c3 --- /dev/null +++ b/sections/errorhandling/testingerrorflows.russian.md @@ -0,0 +1,38 @@ +# Тестируйте потоки ошибок с использованием вашей любимой тестовой среды + +### Объяснение в один абзац + +Тестирование "счастливых" путей не лучше, чем тестирование неудач. Хорошее тестирование покрытия кода требует тестирования исключительных путей. В противном случае, нет уверенности, что исключения действительно обрабатываются правильно. Каждая инфраструктура модульного тестирования, например [Mocha](https://mochajs.org/) и [Chai](http://chaijs.com/), поддерживает тестирование исключений (примеры кода ниже). Если вам кажется утомительным тестировать каждую внутреннюю функцию и исключение, вы можете согласиться с тестированием только ошибок HTTP REST API. + +### Пример кода: обеспечение правильного исключения с помощью Mocha & Chai + +```javascript +describe("Facebook chat", () => { + it("Notifies on new chat message", () => { + var chatService = new chatService(); + chatService.participants = getDisconnectedParticipants(); + expect(chatService.sendMessage.bind({ message: "Hi" })).to.throw(ConnectionError); + }); +}); + +``` + +### Пример кода: застрахованное API возвращает правильный код ошибки HTTP + +```javascript +it("Creates new Facebook group", function (done) { + var invalidGroupInfo = {}; + httpRequest({ + method: 'POST', + uri: "facebook.com/api/groups", + resolveWithFullResponse: true, + body: invalidGroupInfo, + json: true + }).then((response) => { + // if we were to execute the code in this block, no error was thrown in the operation above + }).catch(function (response) { + expect(400).to.equal(response.statusCode); + done(); + }); +}); +```