Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Automated testing with Mocha#63

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
17 commits
Select commitHold shift + click to select a range
9de14ac
Start translation of tests with mocha
alexgalkinMar 1, 2020
b8b98fc
continue translating mocha tests section
alexgalkinMar 1, 2020
7e2c6b4
corrected wording based on the discussion #8
alexgalkinMar 3, 2020
b37acff
continue translating mocha tests section
alexgalkinMar 3, 2020
f3532cc
Finish translating main article for tests with Mocha
alexgalkinMar 4, 2020
1330f8a
Add translations to HTML used in test/mocha section
alexgalkinMar 4, 2020
c301cac
Add translations to test.js files used in test with mocha section
alexgalkinMar 4, 2020
84b4881
Add translation for task & solution for test with mocha section; mino…
alexgalkinMar 5, 2020
213bf2f
Fixes; extra missed translations
alexgalkinMar 5, 2020
ce203c3
Fixes to translations of tests with mocha section
alexgalkinMar 5, 2020
f25dd16
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
ef681b5
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
d076af1
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
16874a3
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
4e8847c
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
e65007e
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
43d7b7a
Update 1-js/03-code-quality/05-testing-mocha/article.md
alexgalkinMar 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
The test demonstrates one of the temptations a developer meets when writing tests.
Тест демонструє одну із спокус, з якою стикається розробник, коли пише тести.

What we have here is actually 3tests, but layed out as a single function with 3 asserts.
Що ми маємо тут, це насправді 3тести, але вони були описані однією функцією з 3 припущеннями.

Sometimes it's easier to write this way, but if an error occurs, it's much less obvious what went wrong.
Іноді простіше написати таким чином, але якщо трапляється помилка, стає не очевидно, що пішло не так.

If an error happens in the middle of a complex execution flow, then we'll have to figure out the data at that point. We'll actually have to *debug the test*.
Якщо помилка трапляється посеред складного потоку виконання, то нам доведеться з’ясувати які були дані на той момент. Тобто, нам доведеться *налагоджувати тест*.

It would be much better to break the test into multiple`it`blocks with clearly written inputs and outputs.
Було б набагато краще розбити тест на кілька блоків`it`із чітко прописаними вхідними даними та результатами.

Like this:
Наприклад:
```js
describe("Raises x to power n", function() {
it("5in the power of 1 equals 5", function() {
describe("Підносить до n-нного степеня", function() {
it("5піднесене до степеня 1 дорівнює 5", function() {
assert.equal(pow(5, 1), 5);
});

it("5in the power of 2 equals 25", function() {
it("5піднесене до степеня 2 дорівнює 25", function() {
assert.equal(pow(5, 2), 25);
});

it("5in the power of 3 equals 125", function() {
it("5піднесене до степеня 3 дорівнює 125", function() {
assert.equal(pow(5, 3), 125);
});
});
```

We replaced the single `it`with `describe`and a group of`it` blocks. Now if something fails we would see clearly what the data was.
Ми замінили один блок `it`на `describe`і групу блоків`it`. Тепер, якщо виникає помилка, ми чітко бачимо, з якими даними вона виникає.

Also we can isolate a single test and run it in standalone mode by writing`it.only`instead of `it`:
Також ми можемо виділити один тест і запустити його в автономному режимі, написавши`it.only`замість`it`:


```js
describe("Raises xto power n", function() {
it("5in the power of 1 equals 5", function() {
describe("Підносить xдо n-нного степеня", function() {
it("5піднесене до степеня 1 дорівнює 5", function() {
assert.equal(pow(5, 1), 5);
});

*!*
// Mochawill run only this block
it.only("5in the power of 2 equals 25", function() {
// Mochaзапустить лише цей блок
it.only("5піднесене до степеня 2 дорівнює 25", function() {
assert.equal(pow(5, 2), 25);
});
*/!*

it("5in the power of 3 equals 125", function() {
it("5піднесене до степеня 3 дорівнює 125", function() {
assert.equal(pow(5, 3), 125);
});
});
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,12 +2,12 @@ importance: 5

---

#What's wrong in the test?
#Що не так з цим тестом?

What's wrong in the test of `pow` below?
Що не так з тестом функціій `pow`, вказаним нижче?

```js
it("Raises xto the power n", function() {
it("Підносить xдо n-нного степеня", function() {
let x = 5;

let result = x;
Expand All@@ -21,4 +21,4 @@ it("Raises x to the power n", function() {
});
```

P.S.Syntactically the test is correct and passes.
P.S.Синтаксичних помилок не має і тести проходять.
294 changes: 147 additions & 147 deletions1-js/03-code-quality/05-testing-mocha/article.md
View file
Open in desktop

Large diffs are not rendered by default.

View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
//enablebdd-style testing
//вмикаємо тестування уbdd стилі
mocha.setup('bdd');
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>

<body>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
describe("test", function() {

before(() => alert("Testing startedbefore all tests"));
after(() => alert("Testing finishedafter all tests"));
before(() => alert("Тестування розпочатоперед усіма тестами"));
after(() => alert("Тестування завершенопісля всіх тестів"));

beforeEach(() => alert("Before a test – enter a test"));
afterEach(() => alert("After a test – exit a test"));
beforeEach(() => alert("Перед тестом – початок тесту"));
afterEach(() => alert("Після тесту – вихід з тесту"));

it('test 1', () => alert(1));
it('test 2', () => alert(2));
Expand Down
18 changes: 9 additions & 9 deletions1-js/03-code-quality/05-testing-mocha/index.html
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
mocha.setup('bdd'); //minimal setup
mocha.setup('bdd'); //вмикаємо тестування у bdd стилі
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>
Expand All@@ -20,17 +20,17 @@

<script>
function pow(x, n) {
/*function code is to be written, empty now */
/*код функції треба написати, поки що цей блок пустий */
}
</script>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
18 changes: 9 additions & 9 deletions1-js/03-code-quality/05-testing-mocha/pow-1.view/index.html
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
//enablebdd-style testing
//вмикаємо тестування уbdd стилі
mocha.setup('bdd');
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>
Expand All@@ -21,17 +21,17 @@

<script>
function pow(x, n) {
/*function code is to be written, empty now */
/*код функції треба написати, поки що цей блок пустий */
}
</script>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
describe("pow", function() {

it("raises to n-th power", function() {
it("підносить до n-нного степеня", function() {
assert.equal(pow(2, 3), 8);
});

Expand Down
18 changes: 9 additions & 9 deletions1-js/03-code-quality/05-testing-mocha/pow-2.view/index.html
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
//enablebdd-style testing
//вмикаємо тестування уbdd стилі
mocha.setup('bdd');
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>
Expand All@@ -21,17 +21,17 @@

<script>
function pow(x, n) {
return 8; // :)we cheat!
return 8; // :)це обман!
}
</script>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
4 changes: 2 additions & 2 deletions1-js/03-code-quality/05-testing-mocha/pow-2.view/test.js
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
describe("pow", function() {

it("2raised to power 3is 8", function() {
it("2піднесене до степеня 3дорівнює 8", function() {
assert.equal(pow(2, 3), 8);
});

it("3raised to power 4is 81", function() {
it("3піднесене до степеня 4дорівнює 81", function() {
assert.equal(pow(3, 4), 81);
});

Expand Down
16 changes: 8 additions & 8 deletions1-js/03-code-quality/05-testing-mocha/pow-3.view/index.html
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
//enablebdd-style testing
//вмикаємо тестування уbdd стилі
mocha.setup('bdd');
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>
Expand All@@ -31,13 +31,13 @@
}
</script>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,7 +2,7 @@ describe("pow", function() {

function makeTest(x) {
let expected = x * x * x;
it(`${x}in the power 3is ${expected}`, function() {
it(`${x}піднесене до степеня 3дорівнює ${expected}`, function() {
assert.equal(pow(x, 3), expected);
});
}
Expand Down
16 changes: 8 additions & 8 deletions1-js/03-code-quality/05-testing-mocha/pow-4.view/index.html
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<!--add mochacss, to show results -->
<!--додаємоcss стилі для mocha, щоб вивести результати -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.css">
<!--addmochaframework code -->
<!--додаємо фреймворкmochaдо коду -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/3.2.0/mocha.js"></script>
<script>
//enablebdd-style testing
//вмикаємо тестування уbdd стилі
mocha.setup('bdd');
</script>
<!--add chai -->
<!--додаємо chai -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.js"></script>
<script>
// chaihas a lot of stuff, let's make assertglobal
// chaiмає багато всього, давайте зробимо assertглобальним
let assert = chai.assert;
</script>
</head>
Expand All@@ -31,13 +31,13 @@
}
</script>

<!--the script with tests (describe, it...) -->
<!--скрипт з тестами (describe, it...) -->
<script src="test.js"></script>

<!--the element withid="mocha"will contain test results -->
<!--елемент зid="mocha"буде містити результати тестів -->
<div id="mocha"></div>

<!--run tests! -->
<!--запускаємо тести! -->
<script>
mocha.run();
</script>
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp