asp.net-mvc – 使用ASP.NET MVC测试驱动的开发 – 从哪里开始?
|
我已经阅读了很多关于测试驱动开发(TDD)的知识,我发现基于个人经验非常有吸引力的原则。 目前,我正在开发一个我参与的初创项目的网站,我想尝试将TDD付诸实践。 所以…我在Visual Studio 2010中创建一个空白的解决方案,添加一个ASP.NET MVC网站项目和一个测试项目。 我还添加了一个名为“Domain”的类库,用于我的域对象,并为其添加了一个测试项目。 现在我想知道从哪里开始在做任何事情之前,我应该写一个测试?问题是 – 我应该开始为域对象编写测试吗?如果是这样,究竟应该测试什么,因为域对象还不存在? 或者我应该从网站项目开始,并为此编写测试?如果是这样,我该怎么写一个测试?家庭控制器/索引动作? 解决方法我通常首先为我要开发的应用程序收集一组故事。从那里我生成一个域模型,通常在“纸”上。我组织了我将要实施的故事,并开始在DB中为第一组故事创建域模型。一旦我有初始的DB,那么我使用一个ORM,在我的例子中,LINQ to SQL,将DB表映射到一组初始类。我通常不会单独测试生成的代码,所以这给了我相当多的代码作为开始的基础。然后我创建一个存根方法,它抛出一个未实现的异常,以实现我正在使用的第一个域类的一个功能。通常,我从验证逻辑开始。一旦你有了存根方法,那么你可以使用VS右键菜单为这个方法创建一个或多个单元测试。然后你就在路上。 一旦我完成了第一个故事的域对象,我就开始使用MVC方面。首先,我将为第一个视图创建视图模型。这些点通常只是一个空的容器类。然后,我将创建视图,并强烈地将其添加到视图模型中。我将开始清理视图,根据视图的需要向视图模型添加属性。请注意,由于视图模型仅仅是一个容器,通常不存在与其相关联的单元测试。然而,它将用于后续的控制器测试。 一旦视图完成(或至少我的初始概念完成),然后我创建存根控制器动作或动作,同样,存根方法只是抛出一个未实现的异常。这足以让它编译,让我用这些工具为它创建单元测试。我根据需要继续测试方法,并确保其适用于给定输入,并产生适当的视图模型。如果该方法可以产生多个视图模型,即渲染多个视图,我可以遍历创建视图模型/视图/控制器代码的过程,直到故事完成。 必要时重复,直到您的故事实施,一路重构。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 用于MVC文件上传的Bootstrap进度条
- asp.net-mvc – 加载符号时Visual Studio调试痛苦地慢
- ASP.NET页面方法vs Web服务
- asp.net-mvc – ASP.NET MVC是否有任何DateTime路由约束?
- ASP.NET Web API将http响应转换为json数组
- asp.net-mvc-4 – 将ninject dependecyResolver用于MVC和We
- asp.net – 如何在ASP文本框中显示会话值
- asp.net-core – 使用asp.net核心进行Windows身份验证
- asp.net-mvc – 如何改变jslint(VS 2010扩展)忽略文件?
- asp.net-mvc – 如何将名为“file []”的已发布数据绑定到M
- asp.net – 为什么不能在发布模式下构建网站?
- 资源解释为样式表,但在ASP.NET IIS中使用MIME类型
- asp.net – “HttpContext.Current”属性和相关事
- asp.net – 如何在Visual Studio中生成Web服务的
- ASP.net使用表单将数据插入到sql server表中
- ASP.NET MVC – 在何处放置数据库查询
- asp.net-mvc-4 – IIS 7.5上的ASP.NET MVC 4,返回
- .NET MVC屏蔽密码文本框
- asp.net 大文件上传 之 改版了的SlickUpload.Htt
- asp.net – 如何禁用viewstate的aspx页面?
