我已经阅读了很多关于测试驱动开发(TDD)的内容,并且根据个人经验,我发现这些原则非常引人注目.
目前我正在开发一个我参与的初创项目的网站,我想尝试将TDD付诸实践.
所以......我在Visual Studio 2010中创建了一个空白解决方案,添加了一个ASP.NET MVC网站项目和一个测试项目.
我还为我的域对象添加了一个名为"Domain"的类库,以及一个测试项目.
现在我想知道从哪里开始.在我做任何事情之前,我应该写一个测试吗?问题是 - 我应该开始为域对象编写测试吗?如果是这样,我究竟应该测试什么,因为域对象尚不存在?
或者我应该从网站项目开始并为此编写测试?如果是这样,我应该为什么编写测试?家庭控制器/指数行动?
tva*_*son 11
我通常首先为我即将开发的应用程序收集一组故事.从那里我生成一个域模型,通常在"纸上".我组织了我将要实现的故事,并开始在数据库中为第一组故事创建域模型.
一旦我有了最初的DB,然后我使用ORM,在我的情况下,LINQ to SQL的,到数据库表映射到一组初始类.我通常不会对生成的代码进行单元测试,所以这给了我相当多的代码作为开始的基础.然后我创建一个存根方法,它抛出一个未实现的异常,来实现我正在使用的第一个域类的一个特性.通常,我从验证逻辑开始.获得存根方法后,可以使用VS右键单击菜单为该方法创建一个或多个单元测试.然后你就开始了.
一旦我完成了第一个故事的域对象,我就开始使用MVC方面了.首先,我将为第一个视图创建视图模型.这一点通常只是一个空的容器类.然后我将创建视图并将其强烈键入视图模型.我将开始充实视图,根据视图的需要向视图模型添加属性.请注意,由于视图模型只是一个容器,因此通常不会与其关联的单元测试.然而,它将用于随后的控制器测试中.
一旦视图完成(或者至少我的初始概念已经完成),然后我为它创建存根控制器操作或操作,stub方法再次抛出一个未实现的异常.这足以让它编译并让我使用这些工具为它创建单元测试.我根据需要继续测试方法并确保它对给定的输入适当地起作用并产生适当的视图模型.如果该方法可以产生多个视图模型,即渲染多个视图,我可以迭代创建视图模型/视图/控制器代码的过程,直到故事或故事完成.
根据需要重复,直到您的故事集实施,并在此过程中进行重构.
| 归档时间: |
|
| 查看次数: |
3845 次 |
| 最近记录: |