综合实践与项目拓展05
学习使用 JUnit 对 Dao 类和 Servlet 进行单元测试
- JUnit 简介
JUnit 是一个广泛使用的 Java 单元测试框架,它可以帮助开发者编写和运行自动化测试用例,验证代码的正确性。JUnit 提供了一系列的注解和断言方法,使得编写测试用例变得简单和直观。 - 引入 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>
- 对 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;
}
}`