Spring Boot DBUnit test getting NoSuchBeanDefinitionExceptio



我正在尝试创建一个简单的SpringBoot DB Unit存储库测试,但是我得到了:

NoSuchBean定义异常:没有限定的Bean类型。 '例子。项目存储库' 可用:预计至少 1 个符合自动连线条件的 Bean 候选人。依赖项注释: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我的 Gradle 依赖项

compile('org.springframework.boot:spring-boot-starter-data-jpa')
runtime('com.h2database:h2')
testCompile("junit:junit")
testCompile("org.assertj:assertj-core:3.8.0")
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile("org.dbunit:dbunit:2.4.9")
testCompile("com.github.springtestdbunit:spring-test-dbunit:1.0.0")

我在item-repository/src/main/java/example/ItemRepository中的存储库

@Component
public interface ItemRepository extends CrudRepository<Item, Long> {
}

我的存储库在item-repository/src/test/java/example/ItemRepositoryTest中测试

@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class,
        TransactionalTestExecutionListener.class, DbUnitTestExecutionListener.class})
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = RepositoryTestConfiguration.class)
@DirtiesContext
public class ItemRepositoryTest {
    @Autowired
    private ItemRepository repository;
    @Test
    @DatabaseSetup("Empty.xml")
    public void save() {
        // Given
        Item item = new Item
        // When
        Item response = repository.save(item);
        // Then
        assertThat(response.getId()).isNotNull();
    }
}

我在item-repository/src/main/test/example/configuration/RepositoryTestConfiguration中的测试配置

@Configuration
public class RepositoryTestConfiguration {
}

我需要在我的RepositoryTestConfiguration中包含什么才能使其正常工作?

注意:我将存储库保存在与Application类不同的模块中,因此我无法在测试配置中引用该类

您必须启用 jpa 存储库,如以下注释:

@EnableJpaRepositories(basePackages = {"com.hop.repository"})

在你的 RepositoryTestConfiguration 类中,你的仓库 bean 可以自动连线。

哦,

好的,因为你使用的是 spring boot,它支持自动配置。因此,只需使用@SpringApplicationConfiguration而不是@ContextConfiguration。

相关内容

  • 没有找到相关文章

最新更新