1

我刚刚开始一个新的 MVC 项目,并且像一个好孩子一样,我试图尽可能长时间地推迟访问数据库。这是独家新闻:

  1. 我打算使用 ComponentModel.DataAnnotations 装饰。
  2. 我也打算使用 LinqToSql

是否可以针对 DataAnnotations 元数据类编写单元测试?我不想尽可能晚地放置这样的模式,但我仍然想编写测试来验证模型。

关于好的方法有什么想法吗?也许是完全不同的东西?

4

1 回答 1

1

Brad Wilson 写了一篇很棒的博客文章,介绍了使用 DataAnnotations 并对它们进行单元测试;http://bradwilson.typepad.com/blog/2009/04/index.html

测试策略的要点是:

  1. 编写一个测试来检查以确保您使用 DataAnnotationsModelBinder 作为默认绑定器。
  2. 使用反射来确保您装饰模型属性的 DataAnnotation 属性是您所期望的。
  3. 测试 Edit 或 Create 控制器操作时,人为注入 ModelErrors 以测试您是否按预期处理它们。

基本原理是您将 System.ComponentModel.DataAnnotations 视为一个基础设施,并仅测试您如何使用它。

于 2009-07-17T18:10:10.447 回答