我需要测试我的SpringBoot应用程序,我从服务测试开始。但我的考试时间似乎太长了,我对这方面还不熟悉,也许不会太慢。谁能给我一些建议吗?
这是我的测试:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ProiectLicentaApplication.class)
@AutoConfigureTestDatabase
@Transactional
public class TestJUnit {
@Autowired
private UserService userService;
@Test
public void testSaveUser(){
User saveToDb = new User("test@gmail.com","test","employee");
User saved = userService.save(saveToDb);
Assert.assertEquals(saveToDb.getEmail(),saved.getEmail());
}
}
这个简单的测试需要230-245毫秒。save方法有spring passwordencoder对密码进行编码,但我不认为这会让它慢很多。
服务方式
public User save(User user) {
String password = passwordEncoder.encode(user.getPassword());
user.setPassword(password);
return userRepository.save(user);
}
1条答案
按热度按时间1sbrub3j1#
您当前的测试正在启动整个spring上下文,这需要时间。
对于您的具体情况,最好编写单元测试。为此,您可以使用junit和mockito。请检查他们的文件,例子很简单。它可以帮助你使用
@Captor
(或ArgumentCaptor
)由于组件和系统之间的交互,集成测试通常需要更多的时间。