Skip to content

Commit aa80a52

Browse files
Added demo examples from April 2015 course instance
1 parent 12de15b commit aa80a52

File tree

16 files changed

+419
-0
lines changed

16 files changed

+419
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Unit testing in Javascript with Mocha: Running tests</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css">
7+
</head>
8+
<body>
9+
<script>
10+
function sum(numbers) {
11+
var numbersSum, i, number, len;
12+
numbersSum = 0;
13+
for (i = 0, len = numbers.length; i < len; i++) {
14+
number = numbers[i];
15+
numbersSum += number;
16+
}
17+
return numbersSum;
18+
}
19+
20+
function testSum() {
21+
if(sum([1,2]) != 3) {
22+
throw new Error('1+2 != 3');
23+
}
24+
if(sum([-2]) != -2) {
25+
throw new Error('-2 != -2');
26+
}
27+
if(sum([]) != 0) {
28+
throw new Error('0 != 0');
29+
}
30+
}
31+
32+
testSum();
33+
</script>
34+
</body>
35+
</html>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Unit testing in Javascript with Mocha: Running tests</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css">
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
11+
<script src="../node_modules/mocha/mocha.js"></script>
12+
<script src="../node_modules/chai/chai.js"></script>
13+
14+
<script type="text/javascript">
15+
mocha.setup('bdd');
16+
expect = chai.expect;
17+
</script>
18+
19+
<script src="sum.js"></script>
20+
<script src="sum.tests.js"></script>
21+
22+
<script type="text/javascript">
23+
mocha.run();
24+
</script>
25+
</body>
26+
</html>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
var app = app || {};
2+
3+
app.sum = function (numbers) {
4+
var numbersSum, i, number, len;
5+
numbersSum = 0;
6+
for (i = 0, len = numbers.length; i < len; i++) {
7+
number = numbers[i];
8+
numbersSum += number;
9+
}
10+
return 0;
11+
};
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
describe('#sum', function () {
2+
3+
it('when empty array, expect to return 0', function () {
4+
var actual = app.sum([]);
5+
var expected = 0;
6+
expect(actual).to.equal(expected);
7+
});
8+
it('when with single number, expect the number', function () {
9+
var number = 6;
10+
var actual = app.sum([number]);
11+
var expected = number;
12+
expect(actual).to.equal(expected);
13+
});
14+
});
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Unit testing in Javascript with Mocha: Running tests</title>
6+
<link rel="stylesheet" href="../node_modules/mocha/mocha.css">
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="../node_modules/mocha/mocha.js"></script>
11+
<script src="../node_modules/chai/chai.js"></script>
12+
<script type="text/javascript">
13+
mocha.setup('tdd');
14+
expect = chai.expect;
15+
</script>
16+
<script src="sum.js"></script>
17+
<script src="sum.tests.js"></script>
18+
<script type="text/javascript">
19+
mocha.run();
20+
</script>
21+
</body>
22+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function sum(numbers) {
2+
var numbersSum, i, number, len;
3+
numbersSum = 0;
4+
for (i = 0, len = numbers.length; i < len; i++) {
5+
number = numbers[i];
6+
numbersSum += number;
7+
}
8+
return numbersSum;
9+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
describe('Person', function() {
2+
var person;
3+
4+
before(function () {
5+
person = new Person('Peter', 'Petrov');
6+
});
7+
8+
describe('when initializing', function(){
9+
it('with valid names, expect ok', function(){
10+
var person = new Person('Peter', 'Petrov');
11+
expect(person.firstname()).to.equal('Peter');
12+
expect(person.lastname()).to.equal('Petrov');
13+
});
14+
});
15+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function sum(numbers) {
2+
var numbersSum, i, number, len;
3+
numbersSum = 0;
4+
for (i = 0, len = numbers.length; i < len; i++) {
5+
number = numbers[i];
6+
numbersSum += number;
7+
}
8+
return numbersSum;
9+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Karma configuration
2+
// Generated on Thu Apr 23 2015 17:27:59 GMT+0300 (FLE Daylight Time)
3+
4+
module.exports = function(config) {
5+
config.set({
6+
7+
// base path that will be used to resolve all patterns (eg. files, exclude)
8+
basePath: '',
9+
10+
11+
// frameworks to use
12+
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
13+
frameworks: ['mocha', 'chai'],
14+
15+
16+
// list of files / patterns to load in the browser
17+
files: [
18+
'app/**/*.js',
19+
'tests/**/*.js'
20+
],
21+
22+
23+
// list of files to exclude
24+
exclude: [
25+
],
26+
27+
28+
// preprocess matching files before serving them to the browser
29+
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
30+
preprocessors: {
31+
},
32+
33+
34+
// test results reporter to use
35+
// possible values: 'dots', 'progress'
36+
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
37+
reporters: ['progress'],
38+
39+
40+
// web server port
41+
port: 9876,
42+
43+
44+
// enable / disable colors in the output (reporters and logs)
45+
colors: true,
46+
47+
48+
// level of logging
49+
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
50+
logLevel: config.LOG_INFO,
51+
52+
53+
// enable / disable watching file and executing tests whenever any file changes
54+
autoWatch: true,
55+
56+
57+
// start these browsers
58+
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
59+
browsers: ['Chrome', 'PhantomJS'],
60+
61+
62+
// Continuous Integration mode
63+
// if true, Karma captures browsers, runs the tests and exits
64+
singleRun: false
65+
});
66+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
(function () {
2+
describe('#sum', function () {
3+
it('when empty array, expect to return 0', function () {
4+
var actual = sum([]);
5+
var expected = 0;
6+
expect(actual).to.equal(expected);
7+
});
8+
it('when with single number, expect the number', function () {
9+
var number = 6;
10+
var actual = sum([number]);
11+
var expected = number;
12+
expect(actual).to.equal(expected);
13+
});
14+
});
15+
16+
}());

0 commit comments

Comments
 (0)