当前位置: 首页 > 知识库问答 >
问题:

UnsatisfiedDependencyException-无法为facade创建bean

郭曾笑
2023-03-14

我面临着我自己无法解决的问题。我想当有Spring经验的人检查时,解决方案可能是显而易见的。

我有一个非常简单的存储库:

interface MovieRepository extends Repository<Movie, Long> {
Movie findMovieById(Long id);
void save(Movie movie);
}
@AllArgsConstructor
public class MovieFacade {

private MovieRepository movieRepository;
private MovieCreator movieCreator;

public MovieDto getMovieById(Long id){
    Optional<Movie> movie = Optional.ofNullable(movieRepository.findMovieById(id));
    return movie.isPresent() ? movie.get().toDto() : null;
}
@Configuration
class MovieConfiguration {

@Bean
MovieFacade movieFacade(MovieRepository repository, MovieCreator movieCreator){
    return new MovieFacade(repository, movieCreator);
}

@Bean
MovieCreator movieCreator(){
    return new MovieCreator();
}
@RunWith(SpringJUnit4ClassRunner.class)
public class MovieFacadeTest {

@Autowired
MovieFacade movieFacade;

@Test
public void dependecyWorks(){
    assertNotNull(movieFacade);
}

就我而言,对象MovieFacade应该在MovieConfiguration中创建,然后注入到测试类的MovieFacade中。由于某种原因,它根本没有发生。我将感谢任何可能导致解决这个问题的帮助或暗示。

共有1个答案

龙博
2023-03-14

我认为您需要用@contextconfiguration注释您的测试类,并给出您的配置类的类引用。在运行JUNIT时,它不会在您定义了MovieFacade bean的地方自动创建Spring上下文。您需要在JUnit类中给出该引用。

 类似资料: