@维修Spring单元测试太慢

hujrc8aj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(383)

我需要测试我的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);
}
1sbrub3j

1sbrub3j1#

您当前的测试正在启动整个spring上下文,这需要时间。
对于您的具体情况,最好编写单元测试。为此,您可以使用junit和mockito。请检查他们的文件,例子很简单。它可以帮助你使用 @Captor (或 ArgumentCaptor )
由于组件和系统之间的交互,集成测试通常需要更多的时间。

相关问题