是否可以在不使用 Spring Boot JPA 的情况下测试基于 java 的 CRUD?

Posted

技术标签:

【中文标题】是否可以在不使用 Spring Boot JPA 的情况下测试基于 java 的 CRUD?【英文标题】:Is it possible to test a java-based CRUD without using Spring Boot JPA? 【发布时间】:2020-07-22 22:09:41 【问题描述】:

我正在学习 Java 并尝试使用 JUnit 编写一些测试代码,但我在 YouTube 上找到的每个教程或视频都使用 Spring Boot JPA。我不想现在就尝试设置它来“跳过步骤”,因为我以前从未研究过它,而且看起来很复杂。有什么方法可以在不使用它的情况下创建一些 JUnit 测试,或者必须测试 CRUD?

例如,这是我要测试的代码:

public void save(User user) 
    //inserindo parsing para que os parâmetros inseridos substituam as interrogações
    String sql = "INSERT INTO users(nome, dataNascimento, sexo) VALUES (?, ?, ?)"; 
    
    Connection conn = null;
    PreparedStatement pstm = null;//preparação da estrutura de execução do java com o SQL
    
    try 
        //cria uma conexão com o banco de dados
        conn = (Connection) ConnectionFactory.createConnectionTomysql();
        
        pstm = conn.prepareStatement(sql);//executa uma query
        //passando os valores esperados pela query
        pstm.setString(1, user.getNome());
        pstm.setString(2, user.getDataNascimento());
        pstm.setString(3, user.getSexo());
        
        
        pstm.execute();
        
        System.out.println("Usuário inserido com sucesso na base de dados.");
    catch (Exception e) 
        e.printStackTrace();
    finally 
        
        //fechando conexões
        try 
            if(pstm!=null) 
                pstm.close();
            
            
            if(conn!=null) 
                conn.close();
            
        catch(Exception e) 
                e.printStackTrace();
            
        
    

如果需要,这是存储库链接:

https://github.com/caiocguedes/crud-neurotech

提前致谢。

【问题讨论】:

【参考方案1】:

Java JDBC 不需要 Spring,也不需要测试 CRUD,因为通常不测试 DAO 层 (CRUD)。

这里是 Java JDBC 的教程

https://javamondays.com/simple-java-jdbc-example/

【讨论】:

以上是关于是否可以在不使用 Spring Boot JPA 的情况下测试基于 java 的 CRUD?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Spring Boot 中运行两个使用 spring.jpa.generate-ddl 填充的嵌入式数据库?

在没有 Spring Boot 应用程序的情况下使用 Spring Data JPA

没有 Spring Boot 的 Spring Data JPA

Spring Boot REST JPA JSON 格式

哪些步骤可以使用 Spring-Boot 和 JPA 启用 SQLite?

我使用 Springboot。 spring-boot-starter-data-jpa 依赖于 log4j。它脆弱吗?