在 Spring Boot 2.1 中,由于多个@BootstrapWith,不再允许使用许多测试切片



我试图升级由两个测试片制成的美味三明治(在我的情况下是@JsonTest和@JdbcTest,中间是松脆的测试代码(,添加Spring Boot 2.1风味。但似乎并没有取得多大成功。我无法用许多@...测试,因为他们现在每个人都带来了自己的XxxTestContextBootstrapper。当它们都使用相同的SpringBootTestContextBootstrapper时,它曾经工作过。

@RunWith(SpringRunner.class)
@JdbcTest
@JsonTest
public class Test {
@Test
public void test() { System.out.printn("Hello, World !"); }
}

我从 BootstrapUtils 得到的错误是非法状态异常: 配置错误:发现测试类的多个@BootstrapWith声明

我知道我可能在这里做错了什么,但是有没有一种简单的方法可以同时加载 Json 和 Jdbc 上下文?

测试切片注释并不是真正设计为这样组合的。恐怕您的代码在 Spring Boot 2.0 中只能靠运气工作。

您确实只需要选择一个@...Test注释,然后将其与一个或多个@AutoConfigure...注释组合在一起。对于上面的例子,我会写:

@RunWith(SpringRunner.class)
@JdbcTest
@AutoConfigureJson
@AutoConfigureJsonTesters
public class Test {
@Test
public void test() { 
System.out.println("Hello, World !"); 
}
}

相关内容

最新更新