我有一个在mongodb中使用SpringBoot2的应用程序,我试图通过进行以下测试来测试一些DTOS的json序列化:
@JsonTest
@RunWith(SpringRunner.class)
public class SomeDTOTest {
@Autowired
JacksonTester < SomeDTO > json;
@Test
public void someTest() {}
}然而,在spring下面,它试图创建存储库bean,并向我提供信息:
***************************
APPLICATION FAILED TO START
***************************
Description:
A component required a bean named 'mongoTemplate' that could not be found.
Action:
Consider defining a bean named 'mongoTemplate' in your configuration.我有更多的集成测试,它使用存储库,并使用@SpringBootTest进行注释,它们运行良好.
有办法限制spring只创建JacksonTester bean吗?
发布于 2018-03-21 13:08:40
你只需要创建一个没有弹簧跑步者的测试。
这是一个示例示例测试
在加载spring上下文时,如果某个地方有mongotemplate的自动注释,spring将尝试提供它。你可以考虑:
发布于 2018-05-29 14:34:35
我发现在Spring应用程序中同时进行集成测试和单元测试是很有挑战性的。我查看了Spring网站,并尝试了许多解决方案。为我工作的是排除AutoConfiguration类:
@RunWith(SpringRunner.class)
@JsonTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
public class JsonTests {
@Autowired
private JacksonTester json;
@MockBean
private MyRepository repository;
@MockBean
private MongoTemplate mongoTemplate;
@Test
public void someTest() {}
} 您可以找到完整的Spring应用程序,其中包括Integration测试这里。
https://stackoverflow.com/questions/49406878
复制相似问题