相关疑难解决方法(0)

你用单元测试测试什么?

TDD现在似乎在每个人的嘴唇上,我自己尝试了一些,但我认为我没有得到这个想法.我正在抓住如何编写单元测试,但我不明白我的单元测试应该测试什么.

  1. 如果我有一个返回数据列表的操作方法,我应该验证什么?只是视图名称是正确的,还是我应该验证数据?
  2. 如果我也应该测试数据,我不会两次编写相同的代码吗?如果我使用相同的方法来检索我要比较的数据,那么测试数据的用途是什么?
  3. 我是否应该测试添加/编辑数据的方法?如何以正确的方式验证是否已添加/编辑/删除记录?

我知道这是一个很大的问题,但我没有因为在互联网上阅读文章而变得更聪明,因为他们似乎都关心如何测试,而不是关注什么.

作为一个例子 - 我有(或将要写)一个GuestbookController,其中包含查看,添加,编辑和删除帖子的方法.我需要测试什么?我该怎么做?

.net tdd asp.net-mvc unit-testing

29
推荐指数
1
解决办法
1814
查看次数

单元测试第三方ORM

我已经阅读了关于单元测试各种应用程序的有用性的一些线程.意见的范围可以从"始终测试所有内容"到"单元测试无用",以及介于两者之间的所有内容("测试哪里有意义").我倾向于向中间倾斜.

这引出了我的问题.我正在尝试根据此SO帖子中的建议来确定测试第三方ORM的基本单元测试是否有益或实用: 链接文本

根据您使用该工具的方式,某些基线测试可能有助于防范未来的重大变更.例如,不是模拟整个n层链(我不是在没有必要时嘲笑的粉丝),只需使用ORM工具来创建,读取,更新和删除典型的对象/记录,使用(测试)数据库上的直接SQL语句验证操作.这样,如果第三方供应商稍后更新了破坏您将了解的基本功能的内容,并且项目的新开发人员可以轻松地了解如何使用单元测试示例中的ORM工具.

根据这个建议,我的主要保留意见是它需要太多的设置,维护是一件令人头痛的问题,而且在我们的环境中这一点都不实用.以下是要考虑的一些要点的摘要:

  1. 我们使用的ORM要求创建静态数据源对象并将其注册到其数据访问层并与经过身份验证的用户关联.这将需要大量的测试设置,并且可能在没有用户登录的构建服务器上存在问题.
  2. ORM供应商在发布新更新和不破坏基本功能方面有着良好的记录.此外,无论什么时候将ORM更新到最新版本,我都会想象应用程序不会直接用于生产,但无论如何都会进行彻底的回归测试.
  3. 在这种环境中维护用于单元测试的测试数据库是有问题的.测试数据库在每个主要版本发布后都会被清除,并且会使用混淆了敏感数据的分段替换为db backup.我想,为了有一个用于ORM单元测试的测试数据库,我们需要运行一些将数据库设置为"测试"状态的脚本/代码.再次设置和维护太多.
  4. 最后是新开发人员的ORM文档/帮助.我可以看到这样的东西是如何有用的.但ORM供应商提供了非常好的文档/帮助演示应用程序.因此,编写单元测试似乎并不值得所有的努力.

那么,是否值得通过所有这些麻烦来确保ORM做它应该做的事情(这是CRUD)?这不应该是供应商的责任吗?

unit-testing

6
推荐指数
1
解决办法
1048
查看次数

我为什么要写测试?

重复:

单元测试无用的项目类型
何时进行单元测试与手动测试
单元测试是值得的吗?

我想知道为什么我应该为我自己手动测试的东西编写测试.我不写rspec测试或类似的东西.为了测试,我会写一些东西然后去浏览器并确保更改做我想要的.我听说这种方法被描述为"错误驱动的开发".

我现在写的应用程序通常范围和大小都很小.我是唯一的开发人员(通常),因此我不必担心将其他人的代码合并到我自己的测试中.

我可以看到需要测试具有数百种表单的大规模应用程序.但对于我自己开发的较小的应用程序,编写测试所需的时间比仅填写信息要长得多.我听说很多开发人员主张测试驱动开发,但我还没有"看到光明".这似乎是一个好主意,但我无法证明编写测试(似乎)需要的工作量.

testing

3
推荐指数
1
解决办法
717
查看次数

标签 统计

unit-testing ×2

.net ×1

asp.net-mvc ×1

tdd ×1

testing ×1