【发布时间】:2024-04-24 03:45:02
【问题描述】:
我正在尝试测试 JAX-RS 应用程序,但我不想模拟数据,尤其是因为现有的 @DataJpaTest 有一个 buildData 方法
这是我目前正在尝试的:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = MyApp.class
)
@DirtiesContext
@DataJpaTest
public class MyResourceTest {
我收到以下错误
java.lang.IllegalStateException:配置错误:发现测试类 [app.MyResourceTest] 的多个 @BootstrapWith 声明:[@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test. context.SpringBootTestContextBootstrapper), @org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper)]
我看到的其他类似的不要谈论webEnvironment设置:
- How do I import configuration classes in a @DataJpaTest in a SpringBootTest?
- Recommended way to remove @DataJpaTest when used along with @SpringBootTest
使用@AutoConfigureTestDatabase 有一些解决方案,但是当我这样做时,只有第一个有效,因为buildData 用@Before 注释(与@DataJpaTest 相同),因为我希望数据之前是原始的每个测试,所以我可以做失败的场景。
切换到@BeforeClass 也不起作用,因为我将无法使用@Autowire Repository 对象。
【问题讨论】:
标签: java spring jpa testing jax-rs