综合实践与项目拓展05

学习使用 JUnit 对 Dao 类和 Servlet 进行单元测试

  1. JUnit 简介
    JUnit 是一个广泛使用的 Java 单元测试框架,它可以帮助开发者编写和运行自动化测试用例,验证代码的正确性。JUnit 提供了一系列的注解和断言方法,使得编写测试用例变得简单和直观。
  2. 引入 JUnit 依赖
    如果你使用的是 Maven 项目,在 pom.xml 文件中添加 JUnit 5 的依赖:
    <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency>
  3. 对 Dao 类进行单元测试
    `import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

public class AssessmentMetricDao {
private static final String DB_URL = "jdbc:mysql://localhost:3306/elderly_assessment";
private static final String DB_USER = "your_username";
private static final String DB_PASSWORD = "your_password";

public List<AssessmentMetric> getAllMetrics() {
    List<AssessmentMetric> metrics = new ArrayList<>();
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
         java.sql.Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery("SELECT * FROM assessment_metrics")) {
        while (rs.next()) {
            int metricId = rs.getInt("metric_id");
            String metricName = rs.getString("metric_name");
            String metricDescription = rs.getString("metric_description");
            String scoringRules = rs.getString("scoring_rules");
            double weight = rs.getDouble("weight");
            metrics.add(new AssessmentMetric(metricId, metricName, metricDescription, scoringRules, weight));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return metrics;
}

public void addMetric(AssessmentMetric metric) {
    try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
         PreparedStatement pstmt = conn.prepareStatement(
                 "INSERT INTO assessment_metrics (metric_name, metric_description, scoring_rules, weight) VALUES (?,?,?,?)")) {
        pstmt.setString(1, metric.getMetricName());
        pstmt.setString(2, metric.getMetricDescription());
        pstmt.setString(3, metric.getScoringRules());
        pstmt.setDouble(4, metric.getWeight());
        pstmt.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}

class AssessmentMetric {
private int metricId;
private String metricName;
private String metricDescription;
private String scoringRules;
private double weight;

public AssessmentMetric(int metricId, String metricName, String metricDescription, String scoringRules, double weight) {
    this.metricId = metricId;
    this.metricName = metricName;
    this.metricDescription = metricDescription;
    this.scoringRules = scoringRules;
    this.weight = weight;
}

// Getters and Setters
public int getMetricId() {
    return metricId;
}

public void setMetricId(int metricId) {
    this.metricId = metricId;
}

public String getMetricName() {
    return metricName;
}

public void setMetricName(String metricName) {
    this.metricName = metricName;
}

public String getMetricDescription() {
    return metricDescription;
}

public void setMetricDescription(String metricDescription) {
    this.metricDescription = metricDescription;
}

public String getScoringRules() {
    return scoringRules;
}

public void setScoringRules(String scoringRules) {
    this.scoringRules = scoringRules;
}

public double getWeight() {
    return weight;
}

public void setWeight(double weight) {
    this.weight = weight;
}

}`

posted @ 2025-02-19 17:08  七分之一月  阅读(11)  评论(0)    收藏  举报
//雪花飘落效果