This repository was archived by the owner on Nov 30, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 403
/
Copy pathtests.js
135 lines (112 loc) · 5.11 KB
/
tests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
describe('Домашнее задание к занятию 2.3 «ООП в JS (ES6)»', () => {
describe('Задача №1', () => {
let printItem;
beforeEach(function(){
printItem = new PrintEditionItem('Типовой школьный журнал', 2019, 102);
});
it('создание печатного издания', () => {
expect(printItem).toBeDefined();
expect(printItem.name).toEqual('Типовой школьный журнал');
expect(printItem.releaseDate).toEqual(2019);
expect(printItem.pagesCount).toEqual(102);
expect(printItem.state).toEqual(100);
expect(printItem.type).toEqual(null);
});
it('починка печатного издания', () => {
printItem.state = 90;
printItem.fix();
expect(printItem.state).toEqual(100);
});
it('геттер для свойства state', () => {
printItem.state = 10;
const spy = spyOnProperty(printItem, 'state', 'get').and.returnValue(10);
expect(printItem.state).toBe(10);
expect(spy).toHaveBeenCalled();
});
it('сеттер для свойства state', () => {
const spy = spyOnProperty(printItem, 'state', 'set');
printItem.state = 10;
expect(spy).toHaveBeenCalled();
});
it('создание объекта Magazine', () => {
printItem = new Magazine('Forbes', 2020, 180);
expect(printItem.type).toEqual("magazine");
});
it('создание объекта Book', () => {
printItem = new Book('А. Сапковский', 'Меч Предназначения', 1992, 384);
expect(printItem.author).toEqual('А. Сапковский');
expect(printItem.type).toEqual('book');
});
it('создание объекта NovelBook', () => {
printItem = new NovelBook('А. Сапковский', 'Меч Предназначения', 1992, 384);
expect(printItem.author).toEqual('А. Сапковский');
expect(printItem.type).toEqual('novel');
});
it('создание объекта FantasticBook', () => {
printItem = new FantasticBook('Джон Толкин', 'Властелин колец', 1954, 2093);
expect(printItem.author).toEqual('Джон Толкин');
expect(printItem.type).toEqual('fantastic');
});
it('создание объекта DetectiveBook', () => {
printItem = new DetectiveBook('Агата Кристи', 'Десять негритят', 2019, 256);
expect(printItem.author).toEqual('Агата Кристи');
expect(printItem.type).toEqual('detective');
});
});
describe('Задача №2', () => {
let library, printItem;
beforeEach(function(){
library = new Library('Библиотека имени Ленина');
printItem = new PrintEditionItem('Типовой школьный журнал', 2019, 102);
});
it('создание библиотеки', () => {
expect(library).toBeDefined();
expect(library.name).toEqual('Библиотека имени Ленина');
expect(library.books).toEqual(jasmine.any(Array));
});
it('добавление книги', () => {
library.addBook(printItem);
expect(library.books[0].name).toEqual('Типовой школьный журнал');
expect(library.books.length).toEqual(1);
});
it('поиск книги', () => {
library.addBook(printItem);
const firstBook = library.findBookBy("releaseDate", 2019);
expect(firstBook.name).toEqual('Типовой школьный журнал');
const secondBook = library.findBookBy("releaseDate", 2154);
expect(secondBook).toEqual(null);
});
it('выдача книги', () => {
library.addBook(printItem);
const firstBook = library.giveBookByName('Типовой школьный журнал');
expect(firstBook.name).toEqual('Типовой школьный журнал');
expect(library.books.length).toEqual(0);
const secondBook = library.giveBookByName('Судовой журнал');
expect(secondBook).toEqual(null);
});
})
describe('Задача №3', () => {
let studentLog;
beforeEach(function(){
studentLog = new StudentLog("Иван Петров");
});
it('создание объекта StudentLog', () => {
expect(studentLog).toBeDefined();
});
it('получение имени студента', () => {
expect(studentLog.getName()).toEqual("Иван Петров");
});
it('подсчёт средней оценки по предмету', () => {
studentLog.addGrade(3, "algebra");
studentLog.addGrade(5, "algebra");
expect(studentLog.getAverageBySubject("algebra")).toEqual(4);
});
it('подсчёт общей средней оценки', () => {
studentLog.addGrade(3, "algebra");
studentLog.addGrade(5, "algebra");
studentLog.addGrade(5, "history");
studentLog.addGrade(5, "history");
expect(studentLog.getTotalAverage()).toEqual(4.5);
});
});
});