Mam następujące usługi wiosny:Autowire usługa Wiosna w teście JUnit
@Service
public class MyService {
public List<int> getIds(Filter filter){
...
}
}
i klasę konfiguracji:
@Configuration
public static class MyApplicationContext {
@Bean
public Filter filter(ApplicationContext context) {
return new Filter();
}
}
Teraz chciałbym utworzyć badanej jednostki w celu sprawdzenia, czy metoda getIds zwraca poprawne wyniki. I stworzył następujący test JUnit:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=MyApplicationContext.class,
loader=AnnotationConfigContextLoader.class)
public class AppTest
{
@Autowired
Filter filter;
@Autowired
MyService service;
}
Kompilator znajdzie właściwą fasoli dla klasy filtr, ale rzuca „BeanCreationException: Nie można autowire pole” wyjątek dla zmiennej usług. Próbowałem dodać klasę usługi do ContextConfiguration.classes, ale potem kompilator wygenerował wyjątek "IllegalStateException: Failed to load ApplicationContext".
Jak dołączyć MyService do ContextConfiguration?
pasta pełny stos ślad proszę? I czy zdefiniowałeś jakieś ziarna w xml i pomógłbyś (jeśli w ogóle) – SMA
Musisz [powiedzieć wiosna] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context /annotation/ComponentScan.html) do skanowania adnotacji '@ Service' –