在Spring Boot框架中進(jìn)行單元測(cè)試通常使用JUnit和SpringBootTest注解。下面是一個(gè)簡(jiǎn)單的示例:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@SpringBootTest
public class UserServiceTest {
@Autowired
private UserService userService;
@MockBean
private UserRepository userRepository;
@Test
public void testGetUserById() {
User user = new User(1L, "John Doe");
when(userRepository.findById(1L)).thenReturn(java.util.Optional.of(user));
User found = userService.getUserById(1L);
assertThat(found.getId()).isEqualTo(1L);
assertThat(found.getName()).isEqualTo("John Doe");
}
}
在上面的示例中,我們使用@SpringBootTest注解來(lái)指示Spring Boot為單元測(cè)試加載應(yīng)用程序上下文。 @Autowired用于注入要測(cè)試的服務(wù),@MockBean用于模擬依賴的UserRepository。我們使用Mockito來(lái)模擬UserRepository的行為,然后調(diào)用userService的方法并斷言返回的結(jié)果。