如何使用Spring Boot创建测试类?

问题描述

我在创建测试课程时遇到了麻烦。 当我尝试运行时,发生以下错误:

例外 由以下原因引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“ productsImpl”的bean时出错:通过字段“ paginateUtil”表示不满意的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型为'com.repository.paginacao.PaginateUtil'的合格Bean:期望至少有1个有资格作为自动装配候选的Bean。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)} 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586)处 在org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@SpringBootTest

    public class ClientTest {
        
        @Autowired
        private ClientService clientService;
        
        public ExpectedException exception = ExpectedException.none();
        
        @Test
        public void createClient() {
            Client client = new Client("Demo","Adress 1");
            clientService.save(client);
            
            Assertions.assertThat(client.getId).isNull();
        }
    }

客户端存储库

public interface Clients extends JpaRepository<Client,Long>,ClientQuery {

}

ClientQuery

public interface ClientQuery{

    public Page<Client> filter(ClientFilter filter,Pageable pageable);
    
}

ClientImpl

public class ClientImpl implements ClientQueries {

    @PersistenceContext
    private EntityManager manager;
    
    @Autowired
    private PaginateUtil paginateUtil;
    
    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true)
    public Page<Client> filter(ClientFilter filter,Pageable pageable) {
        Criteria criteria = manager.unwrap(Session.class).createCriteria(Client.class);
        
        paginateUtil.preparar(criteria,pageable);
        addFilter(filter,criteria);
                
        return new PageImpl<>(criteria.list(),pageable,total(filter));
    }
    
    private Long total(ClientFilter filter) {
        Criteria criteria = manager.unwrap(Session.class).createCriteria(Client.class);
        addFilter(filter,criteria);
        criteria.setProjection(Projections.rowCount());
        return (Long) criteria.uniqueResult();
    }

    private void addFilter(ClientFilter filter,Criteria criteria) {
        if (filter != null) {
            if (!StringUtils.isEmpty(filter.getName())) {
                criteria.add(Restrictions.ilike("name",filter.getName(),MatchMode.ANYWHERE));
            }
        }
    }

}

PaginateUtil @零件 公共类PaginateUtil {}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...