test: 添加配置类和安全组件单元测试
- JwtTokenProviderTest: 测试JWT Token生成、解析和验证功能 - RateLimitConfigTest: 测试限流配置 - MultipartConfigTest: 测试文件上传配置 - 覆盖Token生成、解析、验证等核心安全功能 - 使用反射设置私有字段进行测试 - 避免Spring上下文依赖,提高测试速度
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
package cn.novalon.manage.app.config;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.http.codec.multipart.MultipartHttpMessageReader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class MultipartConfigTest {
|
||||
|
||||
private MultipartConfig multipartConfig;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
multipartConfig = new MultipartConfig();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMultipartConfig() {
|
||||
assertThat(multipartConfig).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMultipartHttpMessageReader() {
|
||||
MultipartHttpMessageReader reader = multipartConfig.multipartHttpMessageReader();
|
||||
|
||||
assertThat(reader).isNotNull();
|
||||
}
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
package cn.novalon.manage.app.config;
|
||||
|
||||
import io.github.resilience4j.ratelimiter.RateLimiter;
|
||||
import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.time.Duration;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class RateLimitConfigTest {
|
||||
|
||||
@Test
|
||||
void testRateLimiterRegistry() throws Exception {
|
||||
RateLimitConfig rateLimitConfig = new RateLimitConfig();
|
||||
|
||||
setField(rateLimitConfig, "limitForPeriod", 100);
|
||||
setField(rateLimitConfig, "limitRefreshPeriod", Duration.ofSeconds(1));
|
||||
setField(rateLimitConfig, "timeoutDuration", Duration.ZERO);
|
||||
|
||||
RateLimiterRegistry registry = rateLimitConfig.rateLimiterRegistry();
|
||||
|
||||
assertThat(registry).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testApiRateLimiter() throws Exception {
|
||||
RateLimitConfig rateLimitConfig = new RateLimitConfig();
|
||||
|
||||
setField(rateLimitConfig, "limitForPeriod", 100);
|
||||
setField(rateLimitConfig, "limitRefreshPeriod", Duration.ofSeconds(1));
|
||||
setField(rateLimitConfig, "timeoutDuration", Duration.ZERO);
|
||||
|
||||
RateLimiterRegistry registry = rateLimitConfig.rateLimiterRegistry();
|
||||
RateLimiter rateLimiter = rateLimitConfig.apiRateLimiter(registry);
|
||||
|
||||
assertThat(rateLimiter).isNotNull();
|
||||
assertThat(rateLimiter.getName()).isEqualTo("apiRateLimiter");
|
||||
}
|
||||
|
||||
private void setField(Object target, String fieldName, Object value) throws Exception {
|
||||
Field field = target.getClass().getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
field.set(target, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user