- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 asp.net 4.0 Web 表单进行 TDD/BDD?我有一个规模很大的现有网站,我们没有对数据库的每次更改进行任何测试,我们必须猜测会破坏什么?我想介绍单元测试请指点?
最佳答案
很大程度上取决于您现有代码库的结构。
将单元测试,尤其是 TDD 改造到遗留项目中可能需要做很多工作。通常,您会发现数据库和业务逻辑位于网页的代码隐藏文件中。
在这里使用接口(interface)类型是你的 friend ,因为 Visual Studio 可以为你自动生成接口(interface)类。 (将光标放在类名上,右键单击,选择重构并提取接口(interface))
我会努力将您的数据库代码分离到它自己的类库项目中。然后,您可以指定业务逻辑等可以通过其访问数据库的公共(public)接口(interface)。所有其他代码都应将数据库存储库视为黑匣子。
创建一个工厂来创建您的存储库(基于该接口(interface)),让它创建一个测试类型和一个实时类型。实时类型将链接到您当前的数据库代码。测试类型将只返回硬编码值。您可以使用实时数据库编写测试,然后您可以以 TDD 方式为“测试”数据库编写测试。
一旦它们都匹配(所有测试都通过),任何新的数据库功能都会通过编写首先在“测试”数据库上运行的测试然后在实时数据库上运行来添加。
请记住,所有代码都应该只使用数据库接口(interface)而不是实例化的实时数据库类。
一旦掌握了流程的窍门,您就可以在数据库代码中进行更深入的研究(如果您愿意的话),但我想说的是,在分离和测试业务和 UI 逻辑时遵循相同的流程在遗留项目中更实用。
您可能会发现一种务实的方法是仅按照我在您添加新代码时所描述的过程分离出功能。换句话说,在您添加新功能之前,按照描述编写显示它通过的测试(实时和测试版本)的代码分离代码,然后根据测试通过或失败来指导您的编码来更改或添加新功能的测试。
如果涵盖所有基础,您需要进行失败测试、通过测试以及异常情况测试。
祝你好运。对于胆小的人来说,这不是一份工作(过去不得不多次这样做)。
关于unit-testing - 如何使用 asp.net 4.0 Web 表单进行 TDD/BDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258448/
有没有人使用 BDD 来驱动他们的域层? 最佳答案 是的,我们发现这个过程非常有效,并且使用 specflow 来提供这种方法相当容易。我们仅在域层中就实现了 2000 多个场景,我们也使用这种方法来
你需要像Fitnesse这样的东西吗? , 如果您有 BDD测试? 最佳答案 BDD“测试”存在于多个不同的粒度级别,一直到最初的项目愿景。大多数人都知道这些场景。有几个人记得BDD started
对于在休闲游戏开发工作室开始学习和应用 BDD,您有什么建议? 最佳答案 虽然我不能说专门在游戏中使用 BDD,但我不能错过向您介绍这篇优秀文章的机会: http://www.code-magazin
我很喜欢 BDD 的开发方法,但我遇到了对走多远的担忧。这条来自 ThoughtWorks 的最新评论 Radar让我暂停: "The advent of behavior-driven design
我有很多相同的场景,它们只是传递给它们的数据不同。 这是示例: 功能:将报表中的事实链接到 Excel 文档 为了将事实链接到 Excel 文档 作为有权报告的用户 我想点击报告中的事实值 场景:任何
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
似乎互联网没有明确的答案,也没有一套原则来帮助我回答这个问题。所以我求助于 SO 上的伟大人物帮助我找到答案或指导思想:) SpecFlow 对于 .NET 中的 BDD 非常有用。但是当我们谈论 B
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
只是寻找 BDD/SpecFlow 的一些示例 - 理想情况下是一个项目б,这样我就可以了解如何在大型项目中使用 SpecFlow,其中多个功能引用相同的步骤等. 在过去的几个月里,我读了一些博客,但
我们有一个工作流引擎,它会显示可用工作流列表(我指的是工作流定义,而不是实例),用户可以单击任何工作流旁边的“执行”链接来执行该工作流的新实例。我想以 BDD 方式完成这个“执行工作流”故事(功能?)
有谁知道实现这一目标的方法,或者他们认为这是一个好主意。在 Gherkin 中使用 OR 样式语法以减少重复但保持人类可读性(希望如此)。我正在考虑使用多个 OR 语句的每个组合扩展子句组合的情况。例
我有许多 BDD 故事/场景(450+ 以及不断增加),我为现有系统继承了这些故事/场景:more info 。这些故事是使用文件系统文件夹组织的: C:\specifications |
我希望更改 Serenity 报告中的 CSS 和 Logo 。此外,我想在 Serenity 报告中添加一些自定义文本或一些测试的链接。就像生成了一个 excel 报告,我希望在报告的测试步骤中提供
我正在处理几个月前部分完成的代码分支,以及相互交织的依赖关系。因此,前进的最简单方法是将特定分支上的失败测试标记为待处理(rspec 方式)或跳过,并在所有内容合并后处理它们。 在其最终报告中,beh
我是 BDD 新手,使用 SpecFlow 我正在尝试制定一种高效、有组织且可维护的方法(用于 ASP.NET MVC 中)。我需要改进的主要方面是: 步骤分组(到步骤文件中) 重用测试对象(就像通过
我整个星期都在四处寻找,无法全神贯注于如何让我们的 pylons 服务器实例启动以与 Behave BDD 一起使用。你们中的任何人都可以指出我的例子或提供您自己的例子吗?这是我正在处理的内容: 来自
我正在尝试为多步骤业务流程编写需求(通过向导)。我有很多场景,用户与一个屏幕的交互会改变您是否可以在另一个屏幕上选择选项。 例如(我已经模糊了实际业务,但步骤的过程和形式几乎相同): Feature:
有没有人有在 BDD 中使用现成框架作为规范流与 CQRS 的经验。 我喜欢 Mark Nijhof 的方法,但是我已经将 SpecFlow 用于其他项目。任何人都可以提供一些启示,如果可能的话,举个
我们正在尝试为每个步骤截取屏幕截图。 一切正常。但是我们无法将屏幕截图与创建它们的步骤相关联。 我们想要的是类似 FeatureContext.FeatureInfo 的东西和 ScenarioCon
我是一名优秀的程序员,十分优秀!