Skip to content

Commit 893d16f

Browse files
committed
테스트 리팩토링
1 parent ebdbb1a commit 893d16f

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.gunkim.ratelimiter.tokenbucket;
22

3+
import org.junit.jupiter.api.BeforeEach;
34
import org.junit.jupiter.api.DisplayName;
45
import org.junit.jupiter.api.Test;
56
import org.mockito.Mockito;
@@ -13,48 +14,50 @@
1314

1415
@DisplayName("TokenBucket은")
1516
class TokenBucketTest {
17+
private Runnable request;
18+
19+
@BeforeEach
20+
void setUp() {
21+
request = Mockito.mock(Runnable.class);
22+
}
23+
1624
@Test
17-
void 토큰_수가_0이면_요청_메서드가_요청을_삭제한다() {
25+
void 토큰이_없는_경우_요청이_무시된다() {
1826
var tokenBucket = new TokenBucket(0, 20_000);
19-
Runnable request = Mockito.mock(Runnable.class);
2027
tokenBucket.request(request);
2128
Mockito.verify(request, never()).run();
2229
}
2330

2431
@Test
25-
void 토큰_수가_최대치일_때_요청_메소드는_요청을_처리한다() {
32+
void 토큰이_최대치일_때_모든_요청이_처리된다() {
2633
var tokenBucket = new TokenBucket(10, 20_000);
27-
Runnable request = Mockito.mock(Runnable.class);
2834
for (int i = 0; i < 10; i++) {
2935
tokenBucket.request(request);
3036
}
3137
Mockito.verify(request, times(10)).run();
3238
}
3339

3440
@Test
35-
void 토큰_수가_3이고_요청이_6개_들어오면_3개만_처리한다() {
41+
void 토큰이_모두_사용된_후_나머지_요청이_무시된다() {
3642
var tokenBucket = new TokenBucket(3, 20_000);
37-
Runnable request = Mockito.mock(Runnable.class);
3843
for (int i = 0; i < 6; i++) {
3944
tokenBucket.request(request);
4045
}
4146
Mockito.verify(request, times(3)).run();
4247
}
4348

4449
@Test
45-
void 단일_스레드_환경에서_토큰_버킷이_올바르게_작동한다() {
50+
void 단일_스레드_환경에서_정상_작동한다() {
4651
var tokenBucket = new TokenBucket(5, 1000);
47-
Runnable request = Mockito.mock(Runnable.class);
4852
for (int i = 0; i < 7; i++) {
4953
tokenBucket.request(request);
5054
}
5155
Mockito.verify(request, times(5)).run();
5256
}
5357

5458
@Test
55-
void 다중_스레드_환경에서_토큰_버킷이_올바르게_작동한다() throws InterruptedException {
59+
void 다중_스레드_환경에서_정상_작동한다() throws InterruptedException {
5660
var tokenBucket = new TokenBucket(100, 5_000);
57-
Runnable request = Mockito.mock(Runnable.class);
5861
ExecutorService taskExecutor = Executors.newFixedThreadPool(10);
5962
for (int i = 0; i < 150; i++) {
6063
taskExecutor.execute(() -> tokenBucket.request(request));
@@ -63,4 +66,4 @@ class TokenBucketTest {
6366
taskExecutor.awaitTermination(1000, TimeUnit.MILLISECONDS);
6467
Mockito.verify(request, times(100)).run();
6568
}
66-
}
69+
}

0 commit comments

Comments
 (0)