Skip to content
Snippets Groups Projects
Commit 4acb6788 authored by CipherChen0's avatar CipherChen0
Browse files

terraform

parent d16a3a48
No related branches found
No related tags found
No related merge requests found
package com.cardiff.lcTest;
import com.cardiff.client_project.pojo.dto.HospitalDTO;
import com.cardiff.client_project.service.NursingHomeService;
import com.cardiff.client_project.utils.Result;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Collections;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
/** ServiceTest
* 用于测试调用 NursingHomeService 接口的类是否正确调用接口方法。
* 本测试使用 Mockito 对接口进行 mock,验证调用与返回逻辑。
*/
class ServiceTest {
//mock的NursingHomeService 接口(不依赖真实实现)
private NursingHomeService nursingHomeService;
//假设的调用类,代表某个使用了NursingHomeService的业务组件
private HospitalManager hospitalManager;
/**假设的业务调用类,用于模拟实际业务中如何调用接口
*/
static class HospitalManager {
private final NursingHomeService nursingHomeService;
public HospitalManager(NursingHomeService nursingHomeService) {
this.nursingHomeService = nursingHomeService;
}
public Result<List<HospitalDTO>> fetchAvailableBeds() {
return nursingHomeService.getAvailableBeds();
}
}
/**初始化测试环境,在每个测试方法前运行
*/
@BeforeEach
void setUp() {
nursingHomeService = mock(NursingHomeService.class); // mock 接口
hospitalManager = new HospitalManager(nursingHomeService); // 注入 mock 到使用者中
}
/**测试:调用 fetchAvailableBeds 是否正确调用接口方法并返回数据
*/
@Test
void testFetchAvailableBeds() {
// 准备模拟数据
List<HospitalDTO> mockBeds = Collections.singletonList(new HospitalDTO());
// 指定接口方法调用时返回的结果
when(nursingHomeService.getAvailableBeds()).thenReturn(Result.success(mockBeds));
// 调用被测方法
Result<List<HospitalDTO>> result = hospitalManager.fetchAvailableBeds();
// 验证返回结果
assertEquals(1, result.getCode(), "返回的状态码应为1(成功)");
assertEquals(1, result.getData().size(), "返回的床位数据应有1条");
// 验证 NursingHomeService.getAvailableBeds() 是否被调用了一次
verify(nursingHomeService, times(1)).getAvailableBeds();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment