Skip to content

Commit 6d75e7b

Browse files
committed
이벤트 처리기 동작 코드 테스팅
1 parent d249c72 commit 6d75e7b

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

ClickCountDisplay/ClickCountDisplay.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var ClickCountDisplay = function(options) {
22
var counter = 0
3-
return {
3+
4+
var clickCounter = {
45
getClickCount() {
56
return counter
67
},
@@ -14,4 +15,10 @@ var ClickCountDisplay = function(options) {
1415
options.updateEl.text(this.getClickCount())
1516
}
1617
}
18+
19+
options.triggerEl.on('click', ()=> {
20+
clickCounter.increseCountAndUpdateDisplay()
21+
})
22+
23+
return clickCounter
1724
}

ClickCountDisplay/ClickCountDisplay.spec.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
describe('ClickCountDisplay 모듈', () => {
22
var display,
3-
displayEl
3+
displayEl,
4+
clickEl
45

56
beforeEach(() => {
67
displayEl = $('<span></span>')
8+
clickEl = $('<button></button>')
79

810
var options = {
9-
updateEl: displayEl
11+
updateEl: displayEl,
12+
triggerEl: clickEl
1013
}
1114

1215
display = ClickCountDisplay(options)
@@ -16,6 +19,12 @@ describe('ClickCountDisplay 모듈', () => {
1619
expect(display.getClickCount()).toBe(0)
1720
})
1821

22+
it('클릭 이벤트가 발생하면 increseCountAndUpdateDisplay를 실행한다', ()=> {
23+
spyOn(display, 'increseCountAndUpdateDisplay')
24+
clickEl.trigger('click')
25+
expect(display.increseCountAndUpdateDisplay).toHaveBeenCalled()
26+
})
27+
1928
describe('increseCountAndUpdateDisplay()', () => {
2029
it('클릭 횟수를 증가한다', () => {
2130
var initalCount = display.getClickCount()

ClickCountDisplay/index.html

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,23 @@
55
<meta charset="UTF-8">
66
<meta name="viewport" content="width=device-width, initial-scale=1">
77

8+
<script src="../vendors/jquery/jquery-3.2.1.min.js"></script>
9+
10+
<script src="ClickCountDisplay.js"></script>
11+
812
<script>
9-
var counter = 0;
13+
document.addEventListener('DOMContentLoaded', ()=> {
14+
var clickCountDisplay = ClickCountDisplay({
15+
triggerEl: $('#btn'),
16+
updateEl: $('#counter-display')
17+
})
1018

11-
function countDisplay() {
12-
document.getElementById('counter-display').innerHTML = counter;
13-
}
19+
clickCountDisplay.updateDisplay()
20+
})
1421
</script>
1522
</head>
1623

1724
<body>
18-
<button onclick="counter++; countDisplay()">증가</button><span id="counter-display">0</span>
25+
<button id="btn">증가</button><span id="counter-display"></span>
1926
</body>
2027
</html>

0 commit comments

Comments
 (0)