完善e2e测试与后端测试,微信小程序端UI层测试暂未完成

This commit was merged in pull request #52.
This commit is contained in:
2026-07-23 20:16:31 +08:00
parent b689656faf
commit 86b7555943
37 changed files with 6819 additions and 5 deletions
@@ -0,0 +1,176 @@
package cn.novalon.gym.manage.coach.handler;
import cn.novalon.gym.manage.coach.service.CoachCourseService;
import cn.novalon.gym.manage.sys.core.domain.SysUser;
import cn.novalon.gym.manage.groupcourse.domain.GroupCourse;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.HttpStatus;
import org.springframework.mock.web.reactive.function.server.MockServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import jakarta.validation.Validator;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class CoachHandlerTest {
@Mock
private CoachCourseService coachCourseService;
@Mock
private Validator validator;
private CoachHandler coachHandler;
@BeforeEach
void setUp() {
coachHandler = new CoachHandler(coachCourseService, validator);
}
// ==================== getAllCoaches ====================
@Test
void getAllCoaches_shouldReturnOkWithCoachList() {
SysUser coach = mock(SysUser.class);
when(coachCourseService.getAllCoaches()).thenReturn(Flux.just(coach));
MockServerRequest request = MockServerRequest.builder().build();
Mono<ServerResponse> result = coachHandler.getAllCoaches(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
verify(coachCourseService).getAllCoaches();
}
@Test
void getAllCoaches_shouldReturnOkWhenEmptyList() {
when(coachCourseService.getAllCoaches()).thenReturn(Flux.empty());
MockServerRequest request = MockServerRequest.builder().build();
Mono<ServerResponse> result = coachHandler.getAllCoaches(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
// ==================== getCoachCourses ====================
@Test
void getCoachCourses_shouldReturnOkWithCourses() {
GroupCourse course = mock(GroupCourse.class);
when(coachCourseService.getCoachCourses(anyLong())).thenReturn(Flux.just(course));
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "1")
.build();
Mono<ServerResponse> result = coachHandler.getCoachCourses(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
@Test
void getCoachCourses_shouldReturnOkWhenEmpty() {
when(coachCourseService.getCoachCourses(anyLong())).thenReturn(Flux.empty());
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "999")
.build();
Mono<ServerResponse> result = coachHandler.getCoachCourses(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
// ==================== disableCoach ====================
@Test
void disableCoach_shouldReturnOkWhenDisabled() {
when(coachCourseService.disableCoach(anyLong())).thenReturn(Mono.empty());
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "1")
.build();
Mono<ServerResponse> result = coachHandler.disableCoach(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
@Test
void disableCoach_shouldReturnBadRequestOnError() {
when(coachCourseService.disableCoach(anyLong()))
.thenReturn(Mono.error(new RuntimeException("Coach not found")));
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "999")
.build();
Mono<ServerResponse> result = coachHandler.disableCoach(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
// ==================== getViolationCounts ====================
@Test
void getViolationCounts_shouldReturnOk() {
when(coachCourseService.getViolationCounts()).thenReturn(Flux.empty());
MockServerRequest request = MockServerRequest.builder().build();
Mono<ServerResponse> result = coachHandler.getViolationCounts(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
// ==================== getCoachViolations ====================
@Test
void getCoachViolations_shouldReturnOkWithViolations() {
when(coachCourseService.getCoachViolations(anyLong())).thenReturn(Flux.just(Map.of("violationId", 1, "reason", "迟到")));
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "1")
.build();
Mono<ServerResponse> result = coachHandler.getCoachViolations(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
@Test
void getCoachViolations_shouldReturnEmptyListWhenNone() {
when(coachCourseService.getCoachViolations(anyLong())).thenReturn(Flux.empty());
MockServerRequest request = MockServerRequest.builder()
.pathVariable("id", "999")
.build();
Mono<ServerResponse> result = coachHandler.getCoachViolations(request);
ServerResponse response = result.block();
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
}
}