当我使用以下注释启动 test 时:
package com.hello.package.p1;
@RunWith(SpringRunner.class)
@DataMongoTest
@SpringBootTest
public class ClassATest {
@Autowired
Service1 serivce1; //fqn = com.hello.package.p1.Service1
@Autowired
Service2 serivce2; //fqn = com.hello.package.p2.Service2
...}
package com.hello.package.p1;
@ActiveProfiles("test")
@SpringBootConfiguration
public class MongoTestConfig {
...
}
将注入service1 。但 service2 不会,因为它与测试类不在同一个包中。我收到一个错误:
通过字段'service2'表示的不满意的依赖;嵌套 例外是 org.springframework.beans.factory.NoSuchBeanDefinitionException
如何告诉我的测试环境我想要加载/扫描某个包,例如com.hello
?
答案 0 :(得分:1)
您可以在测试包中添加TestConfig
类:
@Configuration
@ComponentScan({ "com.hello.package.p1", "com.hello.package.p2" })
public class TestConfig {
}
答案 1 :(得分:0)
答案 2 :(得分:0)
很好地在上面添加测试配置我在测试配置和任何测试用例中都有以下内容。我是Spring Boot测试的新手,但可以。让我知道,如果我错了。
@Configuration
@ComponentScan("au.some.spring.package")
public class TestConfig {
}
@RunWith(SpringRunner.class)
@EnableAutoConfiguration
@SpringBootTest(classes= TestConfig.class)
@TestPropertySource({"classpath:application.yml",
"classpath:env-${testing.env}.properties"})
public class DBDmoTest {
@Autowired
PartyRepository partyRepository;
@Test
public void test(){
Assert.assertNull(partyRepository.findByEmailIgnoreCase("some@abc.com"));
}
}