我在尝试模拟存储库以在Spring-Boot中对我的服务进行单元测试后出现了一些故障。
@ExtendWith(SpringExtension.class)
@ExtendWith(MockitoExtension.class)
@SpringBootTest
@ActiveProfiles("test")
public class UserTest{
@InjectMocks
private UserServiceImpl userService;
@Mock
private UserRepostiory userRepository;
@Before
public void setUp() {
User user = new User(1L, "email@email", "name");
when(userRepostitory.findById(1L)).thenReturn(Optional.of(user));
}
@Test
public void findUserByIdReturnsUser() {
User user = userService.getById(1L); => always throws error in Service, that no User is found with that Id, it calls the regular Repository: mock does nothing
assertEquals(1L,user.getId());
}
}
但是当服务调用repo时,我从来没有得到返回的用户。我对单元测试有点陌生,我很确定,我在这里错过了一些东西。
3条答案
按热度按时间omhiaaxx1#
在设置中,您可以:
但在你所谓的考验中
模拟getById或调用findById
2cmtqfgy2#
“存储库”|“存储库”看起来像是一个打字错误。
bxgwgixi3#
使用
@RunWith(SpringRunner.class)
注解测试类