这里https://stackoverflow.com/a/52968130/10894456很好地解释了为什么@DataJpaTest @SpringBootTest不应该混入一个应用程序中。
但是几乎没有解释何时仍然需要测试MVC SpringBoot应用程序的每一层的情况(从我的角度出发,不仅要测试一层或只有另一层,而且还要测试两层乃至所有层是很自然的,不是吗?)
因此,有人建议使用@AutoConfigureTestDatabase而不是@DataJpaTest的解决方案,但未完成工作((((
所以我的问题是:使用@AutoConfigureTestDatabase是合适的解决方案吗?如果是,请说明详细信息。如果否,请提出更合适的解决方案,谢谢
答案 0 :(得分:1)
假设您想要整个应用程序,但数据库不在内存中,是的,将@SpringBootTest与@AutoConfigureTestDatabase结合使用是一个合适的解决方案,因为它确实做到了。
还提到了in the documentation of @DataJpaTest:
如果您希望加载完整的应用程序配置,但使用嵌入式数据库,则应考虑将@SpringBootTest与@AutoConfigureTestDatabase结合使用,而不是此注释。
答案 1 :(得分:1)
我尝试使用@AutoConfigureTestDatabase
这个东西,但是没有用,然后,我发现这个Spring H2 Test DB does not reset before each test并添加了@Transactional
有用!
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = Application.class)
@WebAppConfiguration
@Transactional
public class ClippingControllerTest {
相关问题:
相关文章: