C'est le dos du dépliant.
Supposons que vous ayez défini la classe suivante. Ceci est un test de la méthode qui ajoute les deux arguments ʻint` et les renvoie.
InnerTest.java
@RunWith(SpringRunner.class)
public class InnerTest {
  @Inject
  Inner inner;
  @Test
  public void test() {
    int a = 1;
    int b = 2;
    //Affirmation
    assertThat(inner.add(a, b), equalTo(a + b));
  }
  /**
   *Classe intérieure pour les tests
   *
   */
  public class Inner {
    //Ajoutez simplement les valeurs des arguments et retournez
    public int add(int a, int b) {
      return a + b;
    }
  }
}
Donc, je pense que la définition du haricot est la suivante.
InnerTest-context.xml
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
   ">
  <bean class="example.InnerTest.Inner" />
</beans>
Quand tu cours ...
Journal des erreurs
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'example.InnerTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
	... 43 common frames omitted
Pourquoi! Bean défini!
Quand j'ai cherché sur Google, il y avait une personne qui posait la même question.
How to create a Spring Bean of a Inner class?
Ou
--Connectez-vous avec $ au lieu de.
Si vous faites l'un des
Je ne sais pas s'il y a de la demande, mais en guise de note parce que j'en avais besoin pour le système que je développe en entreprise: stuck_out_tongue:.
Par exemple, dans un test, si vous définissez le test Controller comme une classe interne statique, le package ne sera que la classe de test et il sera plus facile à voir: v:.
Recommended Posts