You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/05-testing-mocha/article.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,9 @@
6
6
7
7
## Зачем нам нужны тесты?
8
8
9
-
Обычно, когда мы пишим функцию, мы легко можем представить что она должна делать и как она будет вести себя в зависимосте от переданных аргуметнов.
9
+
Обычно, когда мы пишем функцию, мы легко можем представить, что она должна делать и как она будет вести себя в зависимости от переданных параметров.
10
10
11
-
Во время разработки мы можем проверить правильность работы функции просто вызвав ее, например из консоли, и сравнив полученый результат с ожидаемым.
11
+
Во время разработки мы можем проверить правильность работы функции просто вызвав ее, например из консоли, и сравнив полученный результат с ожидаемым.
12
12
13
13
Если функция работает не так, как мы ожидаем, можно исправить код и запустить её еще раз. Так можно повторять до тех пор, пока функция не станет работать так, как нам нужно.
14
14
@@ -62,7 +62,7 @@ describe("pow", function() {
62
62
: В случае правильной реализации функции для тестируемого случая, код внитри блока `it` должен выполняться без ошибок.
63
63
64
64
Функции `assert.*` используются для проверки того что функция `pow` работает так, как мы ожидаем. В этом примере мы используем одну их них -- `assert.equal`, которая сравнивает переданные значения и выбрасывает ошибку если они не равны друг другу.
65
-
65
+
66
66
Существуют и другие типы сравнения и проверок. Их мы рассмотрим позднее.
67
67
68
68
## Процесс разработки
@@ -116,7 +116,7 @@ For the future, let's note that there are advanced test-runners, like [karma](ht
116
116
117
117
## Начальная реализация
118
118
119
-
Давайте напишем простую реализацию функции `pow` что бы пройти тесты.
119
+
Давайте напишем простую реализацию функции `pow` что бы пройти тесты.
120
120
121
121
```js
122
122
functionpow(x, n) {
@@ -253,7 +253,7 @@ describe("pow", function() {
253
253
});
254
254
*/!*
255
255
256
-
// ... другие тесты. Можно писать и describe и it блоки.
256
+
// ... другие тесты. Можно писать и describe и it блоки.
257
257
});
258
258
```
259
259
@@ -262,7 +262,7 @@ describe("pow", function() {
262
262
[iframe height=250 src="pow-4" edit border="1"]
263
263
264
264
In the future we can add more `it` and `describe` on the top level with helper functions of their own, they won't see `makeTest`.
265
-
В будущем мы можем написать новые `it` и `describe` блоки на верхнем уровне со своими собственными вспомогательными функциями. Им не будет доступна функция `makeTest` из примера выше.
265
+
В будущем мы можем написать новые `it` и `describe` блоки на верхнем уровне со своими собственными вспомогательными функциями. Им не будет доступна функция `makeTest` из примера выше.
266
266
267
267
````smart header="`before/after` и `beforeEach/afterEach`"
268
268
Мы можем /after` функции которые будут выполняться до/после тестов, а так-же функции `beforeEach/afterEach` выполняемые до/после *каждого* `it`.
@@ -400,15 +400,15 @@ Now it works, all tests pass:
400
400
401
401
**Автоматическое тестирование кода против этого!**
402
402
403
-
Если проект покрыт тестами, то выше упомянуты проблемы не возникают. Мы можем запустить тесты и увидить результаты огромного количества проверок, сделанных за секунды.
403
+
Если проект покрыт тестами, то выше упомянуты проблемы не возникают. Мы можем запустить тесты и увидить результаты огромного количества проверок, сделанных за секунды.
404
404
405
405
**Кроме того, код, хорошо покрытый тестами, как правило имеет более лучшую архитектуру.**
406
406
407
407
Естественно, его легче менять и улучшать. Но не только из-за этого.
408
408
409
-
Для написания тестов нужно организовать код таким образом что бы у каждой функции была ясно поставленная задача и точно определены её аргументы и возвращаемое значение. А это означает что мы получаем хорошую архетектуру с самого начала.
409
+
Для написания тестов нужно организовать код таким образом что бы у каждой функции была ясно поставленная задача и точно определены её аргументы и возвращаемое значение. А это означает что мы получаем хорошую архетектуру с самого начала.
410
410
411
-
В реальносте это невсегда так просто. Иногда сложно написать спецификацию до того как будет написана реализация потому что не всегда чётко понятно как та или иная функция должна себя вести.
411
+
В реальносте это невсегда так просто. Иногда сложно написать спецификацию до того как будет написана реализация потому что не всегда чётко понятно как та или иная функция должна себя вести.
0 commit comments