正在 springBoot 中开发微服务。正在为 Service 和 DAO 层编写单元测试。当我使用@SpringBootTest时,它会在构建时启动应用程序。但是当我运行单元测试时它不应该启动应用程序。我使用了@RunWith(SpringRunner.class),但无法在 junit 类中使用@Autowired类实例。如何配置不应启动应用程序的 junit 测试类以及如何在 junit 类中@Autowired类实例。
小智 2
如果您不想启动完整的应用程序,请使用 MockitoJUnitRunner 进行 JUnit5 测试。
任何服务、存储库和接口都可以通过 @Mock 注解进行模拟。
@InjectMocks 用于需要测试的 Class 对象。
这是一个例子。
@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
public class AServiceTest {
    
    @InjectMocks
    AService aService;
    
    @Mock
    ARepository aRepository;
    
    @Mock
    UserService userService;
    
    
    @Before
    public void setUp() {
        // MockitoAnnotations.initMocks(this);
        // anything needs to be done before each test.
    }
    
    @Test
    public void loginTest() {
        Mockito.when(aRepository.findByUsername(ArgumentMatchers.anyString())).thenReturn(Optional.empty());
        String result = aService.login("test");
        assertEquals("false", result);
    }
| 归档时间: | 
 | 
| 查看次数: | 10460 次 | 
| 最近记录: |