# Spring Teste de Integração em Controllers \[SOLVED\]

**URL:** https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146
**Category:** Livros
**Tags:** spring-mvc
**Created:** [Março 26, 2016, 5:48am UTC](https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146 "2016-03-26T05:48:22Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![rogerio.fonseca](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/rogerio.fonseca/32/298_2.png) [@rogerio.fonseca](https://forum.casadocodigo.com.br/u/rogerio.fonseca)
#### Post date: [Março 26, 2016, 5:48am UTC](https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146/1 "2016-03-26T05:48:22Z")

</div>

Olá,  
Estou no capitulo de Testes em Controllers e estou tendo problemas ao executar o teste em **ProductControllerTest.java** ( **Link para código da Classe:** [https://goo.gl/qz0q2R](https://goo.gl/qz0q2R) **revision: 818fc57** )

Em princípio parece um erro no momento de obter o contexto ou de fazer a injection dos objetos, ainda não consegui descobrir onde posso estar errando.

* * *

## T E S T S

Running org.casadocodigo.loja.controllers.ProductsControllerTest  
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.999 sec \<\<\< FAILURE!  
shouldListAllBooksInTheHome(org.casadocodigo.loja.controllers.ProductsControllerTest) Time elapsed: 0.013 sec \<\<\< ERROR!  
java.lang.IllegalStateException: Failed to load ApplicationContext  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘productsController’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.casadocodigo.loja.infra.FileSaver org.casadocodigo.loja.controllers.ProductsController.fileSaver; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘fileSaver’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.amazonaws.services.s3.AmazonS3Client org.casadocodigo.loja.infra.FileSaver.s3; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.amazonaws.services.s3.AmazonS3Client] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}  
**Link para FULL STACK:** [http://pastebin.com/PKW6UrFq](http://pastebin.com/PKW6UrFq)

Se alguém tiver uma dica, desde já agradeço. Abraço a todos.

---

<div class="post-metadata">

### Author: ![alots.ssa](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/alots.ssa/32/75_2.png) [@alots.ssa](https://forum.casadocodigo.com.br/u/alots.ssa)
#### Post date: [Abril 4, 2016, 2:16pm UTC](https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146/2 "2016-04-04T14:16:02Z")

</div>

Oi Rogerio, tem essa parte aqui da pilha da exception:

```auto
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.amazonaws.services.s3.AmazonS3Client] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

```

Você criou a classe que tem um método anotado com @Bean que retorna um AmazonS3Client?

Abraço!

---

<div class="post-metadata">

### Author: ![rogerio.fonseca](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/rogerio.fonseca/32/298_2.png) [@rogerio.fonseca](https://forum.casadocodigo.com.br/u/rogerio.fonseca)
#### Post date: [Abril 4, 2016, 2:38pm UTC](https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146/3 "2016-04-04T14:38:12Z")

</div>

Oi Alberto,

Criei sim. Tenho uma class AmazonConfiguration no **main** (pacote principal) com um método:  
@Bean  
public AmazonS3Client s3Ninja(){

Neste passo já é necessário criar o **FileSaverTest**?  
Se tiver mais alguma dica ou palpite.  
Abraço!

---

<div class="post-metadata">

### Author: ![rogerio.fonseca](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/rogerio.fonseca/32/298_2.png) [@rogerio.fonseca](https://forum.casadocodigo.com.br/u/rogerio.fonseca)
#### Post date: [Abril 4, 2016, 2:48pm UTC](https://forum.casadocodigo.com.br/t/spring-teste-de-integracao-em-controllers-solved/146/4 "2016-04-04T14:48:25Z")

</div>

Opa!!

Consegui fazer o teste passar aqui. Analisando essa sua observação acabei pegando um vacilo meu aqui. Como ele estava reclamando do qualify no injection, acrescentei o **AmazonConfiguration.class** no **@ContextConfiguration** do ProductsControllerTest.java, ainda não entendi por que o seu não tem isso e funciona. Seguirei nos estudos e irei analisar para entender qual outra forma foi utilizada no seu código.

**_Agora ficou assim:_**  
@ContextConfiguration(classes = {ProductsController.class, ProductDAO.class, AppWebConfiguration.class, JPAConfiguration.class, SecurityConfiguration.class, DataSourceConfigurationTest.class, **AmazonConfiguration.class** })
