gpt4 book ai didi

java - 确定单元测试的内容和不测试的内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:19 24 4
gpt4 key购买 nike

我仍在了解测试驱动开发。我对应用程序的用户注册模块有以下要求。

  1. 系统必须捕获用户的名字、姓氏、电子邮件地址和可选的邮政地址
  2. 名字和姓氏必须按字母顺序排列
  3. 名字和姓氏不能为空
  4. 电子邮件地址必须是有效地址并且是强制性的
  5. 邮政地址是可选的。

在java中实现上面的内容。我写了下面的代码:

  1. 包含上述字段并具有相应getters和setters的java bean
  2. 以上字段的验证注解
  3. 用于保存用户的 dao
  4. 用于输入用户详细信息的用户界面。

问题:单元测试应该覆盖上面的哪些代码?即 bean 的 getter 和 setter、验证注释的存在、dao 保存用户的能力、UI 中相关表单元素的存在。

最佳答案

我为我认为“我能做错吗?”的事情编写测试。这意味着我不必费心测试其他人提供的库 - 只测试我对它们的配置。

Getters 和 setters - 绝对不是。我使用 Eclipse 生成它们,不值得测试。

用于验证的注解——例如,我不会测试它们是否正确地执行了空检查,我依赖于它们按照 jar 头上所说的进行操作,但我会测试它们是否存在。正确的领域有他们吗?如果我用正则表达式配置它们,我会测试我的正则表达式是否正确。

另一个例子,如果我用 Hibernate 存储我的 POJO。我不检查 Session.save(myObj) 是否正常工作,但我可能做错了一些事情,例如事务边界和映射配置(所有字段都已保存)等。

我发现用户界面测试真的很难。我曾多次想“这一次我会”——但任何比表格更复杂的东西,我都会放弃。使用像 MVP 这样的模式意味着我可以注入(inject)事件来测试大部分计算内容——但仍然存在未测试的 UI 连接。我通常以测试它的一些部分、复杂的数据处理以及感觉容易出错的事情而告终。

关于java - 确定单元测试的内容和不测试的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com