测试应用程序无法在同一项目中找到自动装配的bean

时间:2018-04-19 18:11:38

标签: spring unit-testing testing

我有一个jar文件,它是持久层,ad我只想测试简单地自动装入其他服务层clase的DAO。但我想在没有任何嘲弄或其他任何情况下进行测试。

我认为这应该很简单。我在我的srs / test / java

中有这个
lg

所有DAO都在通常的/ src / main / java下的同一个项目

当我运行mvn来运行这样的测试时:

@RunWith(SpringRunner.class)
@ComponentScan("com.xxxx")
public class ApplicationTester  {

@Autowired 
AplicationDocumentDao aplicationDocumentDao;

@Test
private void testAplicationDocumentDao() {
    aplicationDocumentDao.allForOrg(1);
}

}

我收到此错误:

  mvn -Dtest=ApplicationTester test

当然,无法找到Bean,但我认为@ComponentScan会选择添加Dao&#39。

如何让这个测试人员找到我的所有Dao(都使用@Componenet注释),并在其余的应用程序中接受完好。

有什么想法吗?

**编辑** 这是DAO

 Error creating bean with name 'xxx.test.ApplicationTester': Unsatisfied dependency expressed through field 'aplicationDocumentDao'; 
 nested exception is 0rg.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'xxx.dao.AplicationDocumentDao' available: 
 expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

1 个答案:

答案 0 :(得分:0)

在持久层类中添加注释,例如:@Repository或@Component,如下所示:

@Repository
public interface OrderMapper {}