如何用Java编写高效的Junit测试用例



这是我拥有的简单代码,我必须为此编写一个jUnit测试用例。

public String deletes() throws Exception {
String deleteSql = "select * from test";
if (isMultiTenant) {
return deleteSql = deleteSql + "and id = ? ";
} else {
return deleteSql;
}
}

所以我是这样做的,但在某些地方,它看起来并不是一个好的测试用例,它看起来只是简单地比较两者之间的字符串。有没有其他方法可以编写更有意义的测试用例

大多数单元测试由三个独立的步骤组成:

  1. 数据准备
  2. 执行
  3. 结果断言

有很多人更喜欢只由断言组成的测试:

@Test
public void updateSqlTest() {
assertEquals(
"select * from test",
test.updateSQL()
);
}

这是";看着";测试在格式方面更好。这就是这里要讨论的全部内容,因为这种测试对我来说毫无意义

记住:不要以100%的代码覆盖率为目标,而是要覆盖最重要的、与业务相关的代码。更有意义的测试是:

  • 模拟存储库/DAO层(访问数据库(并测试执行业务逻辑的服务层
  • 在内存数据库中运行以进行测试(使用Spring Boot通常使用H2,因为它工作得很好(,从数据库中获取和更新数据,并断言结果

你写的测试对我来说毫无意义。我会测试SQL查询本身的行为以及使用它的相关业务逻辑。

最新更新