Модульный тест выполняется неправильно; как бы я ни утверждал, оно всегда проходитJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Модульный тест выполняется неправильно; как бы я ни утверждал, оно всегда проходит

Сообщение Anonymous »

Код: Выделить всё

@SpringBootTest(classes =  {DemoApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class MockMvcTestor {
@Autowired
private MockMvc mockMvc;

@MockBean
private FriendshipService friendshipService;

@MockBean
private UserService userService;

@Test
@DisplayName("测试 POST 创建好友关系接口")
public void testFriendController_ValidUserId() throws Exception {
// 模拟 userService 的行为
when(userService.getUser(1)).thenReturn(new User()); // 返回一个有效用户
when(userService.getUser(2)).thenReturn(new User()); // 返回一个有效用户
when(friendshipService.getFriendshipByTwoUserId(1, 2)).thenReturn(null); // 模拟没有好友关系

// 执行 POST 请求
mockMvc.perform(MockMvcRequestBuilders.post("/friendship/BuildRelations")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param("userId1", "1")
.param("userId2", "2"))
.andExpect(status().isOk())
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.jsonPath("$.code").value(0)) // 验证返回的 code
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Susad")) // 验证返回的 message
.andReturn();
}

@Test
@DisplayName("测试 POST 创建用户接口")
public void testAddUser_ValidUser() throws Exception {
// 创建 UserDTO 对象
UserDTO userDTO = new UserDTO();
userDTO.setUsername("testuser");
userDTO.setPassword("password");
userDTO.setGender("Male");
userDTO.setEmail("test@example.com");
userDTO.setStatus("Active");

// 模拟 userService.addUser() 方法,不返回任何值
doNothing().when(userService).addUser(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(byte[].class));

// 创建一个模拟的文件
MockMultipartFile avatarFile = new MockMultipartFile("avatorPic", "avatar.jpg", MediaType.IMAGE_JPEG_VALUE, "dummy data".getBytes());

// 发送 POST 请求
mockMvc.perform(MockMvcRequestBuilders.multipart("/users/addUser")
.file(avatarFile)
.param("username", userDTO.getUsername())
.param("password", userDTO.getPassword())
.param("gender", userDTO.getGender())
.param("email", userDTO.getEmail())
.param("status", userDTO.getStatus()))
.andExpect(status().isOk())
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.jsonPath("$.code").value(0))
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("fal"));
}

}
Вот мой код модульного тестирования, и я занимаюсь разработкой для развертывания проекта на своем сервере. Моя проблема в том, что когда рабочий процесс достигает этого шага,

Код: Выделить всё

    - name: Build with Maven
run: mvn clean package
вывод всегда показывает:

Код: Выделить всё

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
Даже если я использую значение «fal», которого нет во втором методе тестирования, тестирование все равно пройдет.
Я хочу выяснить, почему тестирование не может работать нормально.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ays-passes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»