1
00:00:02,939 --> 00:00:07,179
Hãy để tôi nói ngắn gọn với các bạn về thử nghiệm góc cạnh.

2
00:00:07,179 --> 00:00:11,125
Làm thế nào để bạn thiết kế các ứng dụng góc cạnh của bạn để được kiểm tra?

3
00:00:11,125 --> 00:00:14,032
Làm thế nào để bạn thiết kế các bài kiểm tra cho ứng dụng góc cạnh của bạn?

4
00:00:14,032 --> 00:00:16,359
Làm thế nào để bạn thực hiện các bài kiểm tra và đảm bảo rằng

5
00:00:16,359 --> 00:00:20,607
ứng dụng góc cạnh của bạn đáp ứng tất cả các bài kiểm tra mà bạn đã

6
00:00:20,607 --> 00:00:25,210
viết ngay cả khi bạn đang phát triển ứng dụng góc cạnh của bạn?

7
00:00:25,210 --> 00:00:27,394
Bây giờ đây là nơi tôi cũng sẽ nói ngắn gọn về

8
00:00:27,394 --> 00:00:31,209
sự phát triển theo hướng thử nghiệm của các ứng dụng góc cạnh.

9
00:00:31,209 --> 00:00:37,225
Thật thú vị, góc cạnh chính nó đã được xây dựng từ mặt đất lên để cho phép thử nghiệm,

10
00:00:37,225 --> 00:00:40,820
là một phần của sự phát triển ứng dụng góc cạnh của bạn.

11
00:00:40,820 --> 00:00:47,844
Lực lượng chính đằng sau góc Misko Hovery là một kỹ sư thử nghiệm của Google và do đó,

12
00:00:47,844 --> 00:00:51,850
ảnh hưởng của ông đối với việc thiết kế góc cạnh để được kiểm tra từ

13
00:00:51,850 --> 00:00:56,479
mặt đất lên có thể dễ dàng được nhìn thấy trên tất cả các khuôn khổ.

14
00:00:56,479 --> 00:01:04,435
Vì vậy, góc cạnh chính nó như bạn đã hiểu từ các bài giảng và bài tập trước đó,

15
00:01:04,435 --> 00:01:07,224
là mô đun trong tự nhiên.

16
00:01:07,224 --> 00:01:11,155
Vì vậy, các mô-đun của góc cạnh cùng với các thành phần và các

17
00:01:11,155 --> 00:01:17,409
mẫu của chúng và sau đó là các dịch vụ và các đường ống và các chỉ thị,

18
00:01:17,409 --> 00:01:23,559
có nghĩa là góc cạnh cho chính nó dễ dàng để được thử nghiệm.

19
00:01:23,559 --> 00:01:29,049
Bây giờ, bởi vì các ứng dụng góc cạnh chính nó được cấu tạo bởi các phần khác nhau,

20
00:01:29,049 --> 00:01:32,319
bạn có thể kiểm tra từng phần trong số đó một cách cô lập đầu tiên

21
00:01:32,319 --> 00:01:36,719
ngay cả trước khi chúng trở thành một phần của toàn bộ ứng dụng góc cạnh.

22
00:01:36,719 --> 00:01:40,820
Khía cạnh thứ hai là cơ chế tiêm phụ thuộc đòn bẩy góc

23
00:01:40,820 --> 00:01:45,969
để hỗ trợ sự kết hợp của các phần khác nhau của

24
00:01:45,969 --> 00:01:52,120
ứng dụng góc của bạn có nghĩa là bạn có thể dễ dàng thay thế mocks

25
00:01:52,120 --> 00:01:54,340
cho những phụ thuộc trong

26
00:01:54,340 --> 00:01:59,165
các phần khác nhau của ứng dụng góc cạnh và thực hiện các bài kiểm tra.

27
00:01:59,165 --> 00:02:01,135
Tôi đã sử dụng từ giả trong,

28
00:02:01,135 --> 00:02:05,409
trong câu trước sẽ đến để hiểu

29
00:02:05,409 --> 00:02:10,194
rằng trong một chi tiết hơn một chút và nhiều hơn nữa rằng, slide sau.

30
00:02:10,194 --> 00:02:14,439
Đây là nơi chúng ta cần phải nhận thức được

31
00:02:14,439 --> 00:02:19,724
một cách tiếp cận để thực hiện phát triển ứng dụng được gọi là thử nghiệm hướng phát triển.

32
00:02:19,724 --> 00:02:26,155
Trong thử nghiệm hướng phát triển, như bạn có thể hiểu bằng tên chính nó, có

33
00:02:26,155 --> 00:02:29,229
nghĩa là trước tiên bạn viết các bài kiểm tra tự động cho

34
00:02:29,229 --> 00:02:33,389
tất cả các chức năng mà bạn mong muốn thực hiện trong ứng dụng của bạn.

35
00:02:33,389 --> 00:02:35,004
Vì vậy, đầu tiên đến bài kiểm tra,

36
00:02:35,004 --> 00:02:39,180
sau đó bạn viết mã ứng dụng của bạn để vượt qua bài kiểm tra.

37
00:02:39,180 --> 00:02:44,634
Vì vậy, các thử nghiệm chính nó xác định những chức năng bạn muốn thực hiện.

38
00:02:44,634 --> 00:02:47,840
Sau đó bạn viết mã để thực hiện chức năng đó.

39
00:02:47,840 --> 00:02:50,165
Vì bạn đã có bài kiểm tra tại chỗ,

40
00:02:50,165 --> 00:02:58,150
bạn có thể kiểm tra xem liệu việc thực hiện mà bạn thực hiện có thỏa mãn bài kiểm tra hay không.

41
00:02:58,150 --> 00:03:04,735
Bây giờ, tất nhiên, một khi nhận thức của bạn về chức năng của bạn thỏa mãn kiểm tra,

42
00:03:04,735 --> 00:03:10,919
bạn luôn có thể cấu trúc lại mã để tuân thủ các tiêu chuẩn kỹ thuật phần mềm của họ.

43
00:03:10,919 --> 00:03:12,939
Nhưng ngay cả sau đó,

44
00:03:12,939 --> 00:03:16,900
bạn có thể kiểm tra lại mã để đảm bảo rằng nó vẫn đáp ứng

45
00:03:16,900 --> 00:03:20,844
những yêu cầu được chỉ định trong

46
00:03:20,844 --> 00:03:25,914
đó thử nghiệm cụ thể mà bạn sử dụng trong sự phát triển thử nghiệm hướng của bạn.

47
00:03:25,914 --> 00:03:28,659
Vì vậy, thực sự, thử nghiệm hướng phát triển là

48
00:03:28,659 --> 00:03:32,199
một cách tiếp cận rất khả thi để thiết kế

49
00:03:32,199 --> 00:03:36,522
ứng dụng tốt từ mặt đất để được kiểm tra đầy đủ.

50
00:03:36,522 --> 00:03:38,340
Bây giờ khi chúng ta nói về thử nghiệm,

51
00:03:38,340 --> 00:03:42,009
bạn có thể tiếp cận thử nghiệm từ nhiều khía cạnh khác nhau.

52
00:03:42,009 --> 00:03:44,889
Đầu tiên và quan trọng nhất là nếu ứng dụng của bạn

53
00:03:44,889 --> 00:03:48,534
chính nó được thực hiện như các phần khác nhau,

54
00:03:48,534 --> 00:03:52,620
như các thành phần, như các dịch vụ, như các chỉ thị,

55
00:03:52,620 --> 00:03:57,760
như các đường ống mà bạn đang thực hiện trong ứng dụng của bạn.

56
00:03:57,760 --> 00:04:03,120
Điều đó có nghĩa là bạn có thể dễ dàng kiểm tra từng đơn vị riêng lẻ này một cách cô lập.

57
00:04:03,120 --> 00:04:06,435
Vì vậy, đó là nơi mà các bài kiểm tra đơn vị đi đầu.

58
00:04:06,435 --> 00:04:10,675
Kiểm tra đơn vị có nghĩa là bạn đang kiểm tra các đơn vị riêng lẻ của mã,

59
00:04:10,675 --> 00:04:13,750
đảm bảo rằng đơn vị riêng lẻ cụ thể

60
00:04:13,750 --> 00:04:18,759
thỏa mãn các chức năng mà nó được cho là hỗ trợ,

61
00:04:18,759 --> 00:04:25,855
và rằng chức năng và logic trong đoạn mã đó được thực hiện một cách chính xác.

62
00:04:25,855 --> 00:04:28,870
Bây giờ cô lập các đơn vị và thử nghiệm nó là rất,

63
00:04:28,870 --> 00:04:35,401
rất hữu ích để tìm ra hầu hết các vấn đề ban đầu trong của bạn,

64
00:04:35,401 --> 00:04:41,079
trong mã của bạn và sau đó sửa chữa chúng ngay cả trước khi bạn tích hợp vá đó vào mã.

65
00:04:41,079 --> 00:04:44,259
Bây giờ một khi bạn bắt đầu tích hợp các phần này vào toàn bộ,

66
00:04:44,259 --> 00:04:50,860
nó trở nên cồng kềnh hơn để có thể thực hiện các bài kiểm tra chi tiết của mã của bạn.

67
00:04:50,860 --> 00:04:55,839
Vì vậy, do đó, các bài kiểm tra đơn vị bị cô lập tạo thành dòng đầu tiên

68
00:04:55,839 --> 00:05:01,029
của bảo vệ chống lại lỗi khi bạn đang phát triển ứng dụng của bạn,

69
00:05:01,029 --> 00:05:03,904
đặc biệt là ứng dụng góc cạnh của bạn.

70
00:05:03,904 --> 00:05:06,189
Bây giờ như chúng ta thấy với một góc cạnh,

71
00:05:06,189 --> 00:05:10,540
chúng ta có một sự tách biệt rõ ràng giữa các thành phần góc cạnh và chính DOM.

72
00:05:10,540 --> 00:05:13,339
Vì vậy, trong một thành phần, ví dụ, ở đó,

73
00:05:13,339 --> 00:05:16,930
logic của thành phần của bạn được thực hiện hoàn toàn

74
00:05:16,930 --> 00:05:22,101
trong mã typescript mà bạn thực hiện trong một thành phần mà các tập tin typescript.

75
00:05:22,101 --> 00:05:25,675
Và sau đó bản thân DOM được điều khiển

76
00:05:25,675 --> 00:05:29,660
thông qua mẫu mà bạn đã thiết kế cho thành phần góc cạnh của bạn.

77
00:05:29,660 --> 00:05:33,475
Vì vậy, bản thân Beta, bạn thấy sự tách biệt rõ ràng giữa hai người.

78
00:05:33,475 --> 00:05:36,139
Vì vậy, bạn có thể chỉ đơn giản là kiểm tra logic

79
00:05:36,139 --> 00:05:41,615
của mã thành phần của mình mà không cần viết một mẫu dọc.

80
00:05:41,615 --> 00:05:47,350
Nhưng sau đó bạn cũng có thể xem xét cả hai với nhau và sau đó đánh giá những khía cạnh đó.

81
00:05:47,350 --> 00:05:50,731
Như chúng ta sẽ thấy trong bài tập sau bài giảng này,

82
00:05:50,731 --> 00:05:53,879
chúng ta sẽ thực sự làm cả hai cách tiếp cận này.

83
00:05:53,879 --> 00:05:56,685
Không chỉ vậy, thực tế là góc sử dụng

84
00:05:56,685 --> 00:06:01,910
phụ thuộc tiêm có nghĩa là bạn có thể tiêm các phụ thuộc giả trong ứng dụng của bạn.

85
00:06:01,910 --> 00:06:04,279
Khi tôi nói giả mạo, tôi có nghĩa là, ví dụ,

86
00:06:04,279 --> 00:06:08,500
nếu thành phần của bạn phụ thuộc vào một dịch vụ cụ thể, bạn luôn có thể thực hiện

87
00:06:08,500 --> 00:06:13,220
một dịch vụ giả mạo bắt chước hành vi của dịch vụ

88
00:06:13,220 --> 00:06:17,689
và sau đó thay thế vào vị trí trong khi bạn đang thử nghiệm các thành phần để bạn có thể giữ cho

89
00:06:17,689 --> 00:06:22,550
thành phần của bạn độc lập làm thế nào các dịch vụ thực sự được thực hiện.

90
00:06:22,550 --> 00:06:27,110
Miễn là giao diện giữa thành phần của bạn và dịch vụ được thiết kế đúng cách,

91
00:06:27,110 --> 00:06:32,045
bạn có thể thay thế một dịch vụ giả tại chỗ và vẫn kiểm tra thành phần của bạn.

92
00:06:32,045 --> 00:06:33,784
Ở đó, từ mô phỏng,

93
00:06:33,784 --> 00:06:39,470
bạn có thể dễ dàng kiểm soát những gì được cung cấp cho các thành phần từ dịch vụ.

94
00:06:39,470 --> 00:06:43,220
Vì vậy, cách tiếp cận này cho phép bạn thực hiện kiểm tra đơn vị một cách

95
00:06:43,220 --> 00:06:47,990
chi tiết trong ứng dụng góc cạnh của bạn.

96
00:06:47,990 --> 00:06:53,375
Đây là nơi mà sự sẵn có của thử nghiệm khuôn khổ như “Jasmine”.

97
00:06:53,375 --> 00:06:55,459
Vì vậy, những gì Jasmine cung cấp là

98
00:06:55,459 --> 00:07:03,110
một khuôn khổ thử nghiệm dựa trên hành vi được thiết kế hoàn toàn trong JavaScript.

99
00:07:03,110 --> 00:07:06,170
Bây giờ, khuôn khổ Jasmine này là một khuôn khổ tổng quát

100
00:07:06,170 --> 00:07:09,505
có sẵn để thử nghiệm bất kỳ ứng dụng JavaScript nào.

101
00:07:09,505 --> 00:07:18,565
Angular áp dụng Jasmine như là cách tiếp cận để xác định các bài kiểm tra của chúng tôi cho các bộ phận góc cạnh khác, các

102
00:07:18,565 --> 00:07:23,657
thành phần của chúng, các dịch vụ và các khía cạnh khác nhau của ứng dụng góc cạnh của chúng tôi.

103
00:07:23,657 --> 00:07:30,730
Bây giờ, bên trong Jasmine, Jasmine sử dụng hai thứ giúp đỡ của bạn.

104
00:07:30,730 --> 00:07:33,722
Một là việc sử dụng một hàm “mô tả”.

105
00:07:33,722 --> 00:07:38,779
Hàm “mô tả” cho phép bạn nhóm một tập hợp các phép thử và sau đó

106
00:07:38,779 --> 00:07:45,110
thực hiện các phép thử này với nhau như một nhóm các phép thử duy nhất.

107
00:07:45,110 --> 00:07:47,884
Khi chúng ta viết mã trong bài tập, bạn sẽ thấy tôi

108
00:07:47,884 --> 00:07:52,225
kèm theo một tập hợp các bài kiểm tra bên trong một hàm mô tả.

109
00:07:52,225 --> 00:07:55,389
Sau đó, chúng tôi viết mã của chúng tôi cho chúng tôi,

110
00:07:55,389 --> 00:08:00,214
mã Jasmine, cho các bài kiểm tra góc cạnh của chúng tôi.

111
00:08:00,214 --> 00:08:05,171
Bây giờ trong các chức năng “mô tả” này, bạn cũng sẽ sử dụng những gì được gọi là “nó” chức năng.

112
00:08:05,171 --> 00:08:07,550
Các chức năng “nó” cho phép bạn xác định

113
00:08:07,550 --> 00:08:11,949
các bài kiểm tra riêng lẻ mà bạn muốn thực hiện trên ứng dụng góc cạnh của bạn.

114
00:08:11,949 --> 00:08:17,509
Vì vậy, đó là nơi bạn sẽ thấy tôi chỉ định “nó” và sau đó xác định rằng

115
00:08:17,509 --> 00:08:21,185
bản chất của các thử nghiệm cụ thể và sau đó

116
00:08:21,185 --> 00:08:25,259
thiết kế mã cho rằng thử nghiệm cụ thể với một trong “nó” chức năng.

117
00:08:25,259 --> 00:08:29,240
Vì vậy, khi chúng tôi thiết kế các mã trong bài tập tìm ra cho “mô tả” và

118
00:08:29,240 --> 00:08:33,575
“nó” trong các ứng dụng thử nghiệm góc cạnh của bạn.

119
00:08:33,575 --> 00:08:37,559
Một khi bạn đã thiết kế thử nghiệm với khuôn khổ Jasmine,

120
00:08:37,559 --> 00:08:41,600
Karma là một công cụ dòng lệnh dựa trên JavaScript

121
00:08:41,600 --> 00:08:46,174
cho phép bạn thực hiện các thử nghiệm này một cách tự động.

122
00:08:46,174 --> 00:08:48,440
Bây giờ, Karma cùng với Jasmine, cho

123
00:08:48,440 --> 00:08:53,500
phép bạn thực hiện các bài kiểm tra cho ứng dụng góc cạnh của bạn.

124
00:08:53,500 --> 00:08:56,375
Bây giờ với Karma, những gì Karma hỗ trợ,

125
00:08:56,375 --> 00:08:59,065
là nó cho phép bạn đẻ ra

126
00:08:59,065 --> 00:09:04,409
một máy chủ web trong đó bạn tải mã nguồn ứng dụng của bạn và

127
00:09:04,409 --> 00:09:13,370
sau đó Karma sử dụng một trình duyệt để thực hiện các thử nghiệm thực tế của các đơn vị khác nhau của bạn.

128
00:09:13,370 --> 00:09:17,100
Vì vậy, đây là nơi khi bạn chạy thử nghiệm bằng Karma,

129
00:09:17,100 --> 00:09:19,774
bạn sẽ thấy Karma xếp chồng lên một trình duyệt, cho

130
00:09:19,774 --> 00:09:26,120
dù đó là một cửa sổ trình duyệt của một trình duyệt hiện có

131
00:09:26,120 --> 00:09:29,174
hay bạn sẽ sử dụng một cái gì đó gọi là PhantomJS mà bắt đầu

132
00:09:29,174 --> 00:09:32,715
một trình duyệt ảo đằng sau hậu trường để thực hiện thử nghiệm.

133
00:09:32,715 --> 00:09:35,855
Nó không quan trọng, nhưng Karma sử dụng

134
00:09:35,855 --> 00:09:40,554
trình duyệt trong một khoảnh khắc để thực hiện các thử nghiệm cho ứng dụng góc cạnh của bạn.

135
00:09:40,554 --> 00:09:43,356
Như bạn sẽ thấy trong bài tập sau,

136
00:09:43,356 --> 00:09:50,649
đây là nơi nếu một trong các đồng nghiệp của bạn tiếp tục nhấn mạnh rằng việc thực hiện

137
00:09:50,649 --> 00:09:55,070
một phần cụ thể của ứng dụng góc cạnh của bạn là

138
00:09:55,070 --> 00:09:59,659
chính xác và tiếp tục nhấn mạnh điểm,

139
00:09:59,659 --> 00:10:03,110
bạn luôn có thể thiết kế một vài bài kiểm tra bằng cách sử dụng Jasmine và

140
00:10:03,110 --> 00:10:07,081
Karma và sau đó thực hiện các bài kiểm tra và nếu các bài kiểm tra thất bại,

141
00:10:07,081 --> 00:10:11,095
bạn luôn có thể bác bỏ lập luận của họ.

142
00:10:11,095 --> 00:10:12,615
Vì vậy, đó là khi bạn có thể quay

143
00:10:12,615 --> 00:10:14,465
lại, quay lại với đồng nghiệp của bạn và nói,

144
00:10:14,465 --> 00:10:17,240
Karma của tôi đã vượt qua giáo điều của bạn.

145
00:10:17,240 --> 00:10:21,664
Bây giờ, tất nhiên, các ứng dụng góc cạnh

146
00:10:21,664 --> 00:10:26,419
của bạn không hoàn toàn không có sự tham gia của khuôn khổ góc cạnh chính nó.

147
00:10:26,419 --> 00:10:29,210
Thành phần của bạn không thể được thiết kế bởi chính bạn mà không

148
00:10:29,210 --> 00:10:33,850
sử dụng nhiều chức năng thư viện góc cung cấp cho bạn,

149
00:10:33,850 --> 00:10:39,215
mặc dù một số logic cơ bản có thể được kiểm tra độc lập với góc cạnh.

150
00:10:39,215 --> 00:10:42,125
Cái mà chúng ta gọi là các bài kiểm tra bị cô lập.

151
00:10:42,125 --> 00:10:44,450
Nhưng, ngày càng nhiều,

152
00:10:44,450 --> 00:10:46,659
bạn sẽ thấy rằng trừ khi bạn ở,

153
00:10:46,659 --> 00:10:49,490
muốn khung góc hỗ trợ bản thân bạn

154
00:10:49,490 --> 00:10:52,565
sẽ không thể thực hiện nhiều thử nghiệm của các

155
00:10:52,565 --> 00:11:00,639
bộ phận góc cạnh của bạn cho dù đó là các thành phần hoặc dịch vụ hoặc đường ống hoặc chỉ thị.

156
00:11:00,639 --> 00:11:05,524
Vì vậy, đây là nơi mà các tiện ích thử nghiệm góc cung cấp

157
00:11:05,524 --> 00:11:08,690
một môi trường thử nghiệm cho phép bạn thực

158
00:11:08,690 --> 00:11:12,384
hiện các bài kiểm tra đơn vị trong ứng dụng góc cạnh của bạn.

159
00:11:12,384 --> 00:11:18,139
Vì vậy, các tiện ích thử nghiệm góc cạnh như bạn sẽ thấy tôi sử dụng trong các bài tập,

160
00:11:18,139 --> 00:11:20,480
trong bài tập tiếp theo,

161
00:11:20,480 --> 00:11:27,034
sẽ cung cấp cho chúng tôi một số triển khai chức năng góc cạnh mà bạn sử dụng

162
00:11:27,034 --> 00:11:33,950
trong các bài kiểm tra của bạn để thiết lập môi trường nơi bạn có thể thực hiện các bài kiểm tra của họ.

163
00:11:33,950 --> 00:11:37,319
Vì vậy, đây là nơi mà sự tương tác với môi trường góc cạnh,

164
00:11:37,319 --> 00:11:41,404
thay vì sử dụng các triển khai góc thực,

165
00:11:41,404 --> 00:11:45,740
bạn sẽ sử dụng các tiện ích thử nghiệm này sẽ cung cấp

166
00:11:45,740 --> 00:11:50,355
đủ chức năng để cho phép bạn thực hiện các bài kiểm tra.

167
00:11:50,355 --> 00:11:53,840
Và đây là nơi mà TestBed mà chúng tôi sẽ

168
00:11:53,840 --> 00:11:57,825
sử dụng trong ứng dụng góc cạnh của chúng tôi là rất, rất hữu ích.

169
00:11:57,825 --> 00:12:02,899
TestBed về cơ bản tạo ra một mô-đun thử nghiệm góc cạnh.

170
00:12:02,899 --> 00:12:06,205
Như bạn nhận ra, các thành phần của bạn không tồn tại một mình.

171
00:12:06,205 --> 00:12:09,850
Các thành phần của bạn phải được bao gồm trong một mô-đun NG.

172
00:12:09,850 --> 00:12:14,264
Bây giờ bạn không thể chỉ đơn giản là sử dụng một mô-đun NG tiêu chuẩn để thực hiện thử nghiệm của bạn.

173
00:12:14,264 --> 00:12:16,084
Vì vậy, đó là nơi mà TestBed,

174
00:12:16,084 --> 00:12:18,560
được hỗ trợ bởi tiện ích kiểm tra góc,

175
00:12:18,560 --> 00:12:24,549
cung cấp cho bạn một môi trường mô-đun NG cho phép bạn kiểm tra các thành phần của họ.

176
00:12:24,549 --> 00:12:25,850
Vì vậy, trong TestBed,

177
00:12:25,850 --> 00:12:29,929
bạn sẽ sử dụng một cái gì đó gọi là TestBed Create Component để tạo ra

178
00:12:29,929 --> 00:12:36,139
một thành phần cá nhân và một thể hiện của các thành phần để thực hiện các thử nghiệm trên đó.

179
00:12:36,139 --> 00:12:37,940
Và khi bạn làm điều đó

180
00:12:37,940 --> 00:12:42,454
TestBed cung cấp cho bạn truy cập vào một cái gì đó được gọi là ComponentFixture,

181
00:12:42,454 --> 00:12:48,500
ComponentFixture là một cái gì đó cung cấp cho bạn một xử lý cho phép bạn bao quanh

182
00:12:48,500 --> 00:12:56,419
thành phần của bạn với đủ chức năng để các thành phần có thể được kiểm tra bởi chính nó.

183
00:12:56,419 --> 00:13:00,950
Các fixture cung cấp quyền truy cập vào các thành phần chính nó và

184
00:13:00,950 --> 00:13:05,299
sau đó cũng thông qua đó chúng tôi sẽ sử dụng một cái gì đó gọi là DebugElement.

185
00:13:05,299 --> 00:13:08,375
Bạn sẽ thấy tôi sử dụng điều đó trong bài tập sau.

186
00:13:08,375 --> 00:13:11,424
DebugElement cung cấp cho bạn truy cập vào DOM,

187
00:13:11,424 --> 00:13:16,754
đó là mẫu được hỗ trợ như là một phần của thành phần của bạn.

188
00:13:16,754 --> 00:13:23,899
Vì vậy, do đó, bạn có thể thực hiện thao tác trên DOM như nhấp vào các phần tử trong DOM,

189
00:13:23,899 --> 00:13:29,315
nhận được quyền truy cập vào một phần tử DOM và sau đó đọc ra

190
00:13:29,315 --> 00:13:35,600
những gì được bao bọc bên trong các phần tử Dom và như vậy sẽ cho phép bạn thực hiện các bài kiểm tra.

191
00:13:35,600 --> 00:13:37,669
Bây giờ, trước khi chúng ta tiếp tục tập luyện,

192
00:13:37,669 --> 00:13:43,250
tôi muốn bạn nhận thức được một số trong những điều này để khi chúng ta gặp chúng

193
00:13:43,250 --> 00:13:51,139
trong bài tập, bạn sẽ thấy tại sao tôi sử dụng từng phần khác nhau này.