8

我现在练习 TDD 有一段时间了,我想提高我的技能并开始做 ATDD,我阅读了 ruby​​ 和 java 的框架,但没有听到太多关于 .NET 的信息

.NET 中用于编写验收测试的维护最多的最新框架是什么?

编辑:在阅读更多内容后,我想指出我正在将网站和 Web 应用程序的验收测试联系起来,任何可能它也必须被视为 GUI 测试。

4

3 回答 3

1

我们刚开始使用FitNesse,到目前为止,我对这个决定很满意。一个非常简短的概述:

  1. 您在 Wiki 中编写测试。
  2. 您编写了一个“测试夹具”模块(可以是 ac# 程序集),它提供了 Wiki 中的“测试”和 SUT(被测系统)之间的桥梁。
  3. 当您运行测试时,FitNesse 引擎使用反射将 wiki 测试转换为对测试夹具程序集的调用,然后调用 SUT。返回值被传递回 Wiki,因此您可以“断言”它们。

测试夹具代码的公共接口实际上是您在 Wiki 中编写测试所使用的语言。我不确定我是否解释得很好,但是网络上有很多资源和视频。我向 FitNesse 的作者 Bob Martin 推荐这个

我选择 FitNesse 有几个原因:

  • 完善的框架
  • 使用 FitSharp 插件与 .NET 一起使用:http: //fitnesse.org/FitNesse.DotNet
  • 因为 Wiki 中的测试是用您在夹具代码中定义的语言编写的,所以它们是可读的
  • 可以通过命令行调用测试,这是我们想要的持续集成。
  • Robust 1:如果 SUT 的接口发生变化,您只需要更改测试夹具代码,而不需要更改测试
  • 稳健 2:我们没有在不稳定的 UI 级别进行测试。

这需要一点时间来适应,但我发现它比我们目前通过 UI 进行测试的概念要可靠得多。我们目前在自制应用程序中执行此操作,该应用程序通过回放预先录制的 UI 操作和比较屏幕截图来工作。当测试为红色时,很少是因为 SUT 实际上已损坏。通常我们会遇到 UI 控件无法立即做出反应的时间问题,因此我们必须在 UI 操作之间建立延迟,这意味着运行全套测试需要整晚。

于 2011-11-25T15:50:01.157 回答
0

mSpec (machine specifications) is a TDD/BDD framework that is very popular.

nUnit is a unit test framework (which can be used for acceptance tests as well).

于 2011-11-25T15:05:33.530 回答
-1

请将 Ranorex 视为相当新的工具之一。

http://www.ranorex.com/

他们在提供完整的工具集方面做得很好,包括单元测试 API、自动化引擎和测试记录器。简而言之 - 你用 C# 编写测试,或者你使用记录器“记录”它们,记录器将它们写为 C# 代码。

然后你“回复”他们,运行你的 C# 代码。您可以根据需要创建任意数量的断言,并且自动化 API 允许您自动化屏幕上可见的任何内容。

ATDD 的好工具,我们使用了一段时间,我们很满意。

于 2011-11-25T15:14:31.850 回答