使用FitNesse而不是NUnit

7
据我所了解,您可能需要使用FitNesse的情况有以下几种:
  • 你希望进行验收测试而不是单元测试。
  • 您希望将其用作与利益相关者的沟通工具。
  • 您想要进行大规模测试而不是细粒度测试。
  • 您希望非技术人员编写测试。
个人意见和经验如下:
  • 我可以使用诸如NUnit之类的工具进行验收测试。Fitnesse基本上只是一个调用.NET程序集上的公共方法的框架,这也可以使用NUnit来完成。
  • 利益相关者告诉我他们想要什么。他们很少有兴趣编写Fitnesse测试。他们似乎有其他/更好/更重要的事情要做。
  • 您可以使用FitNesse进行大规模测试。据我所知,您必须在Web浏览器中的纯文本编辑器中输入所有这些大规模测试的输入。这怎么比从磁盘上的文本文件,Excel文件或数据库中读取输入数据更容易呢?当然,您可以在Web界面中指定到文件在磁盘上的路径,但这样做有什么好处呢?与使用NUnit读取相同文件相比,有何益处?
  • 这些非技术人员必须在Web网站上的文本编辑器中编写遵循非常特定语法的代码,以便稍后调用.NET程序集。由于非技术人员不懂编程但仍然要指定程序集的工作方式,因此.NET代码会变得混乱。
有人能分享一些关于这个主题的其他观点吗?FitNesse对您有何价值?

我觉得很奇怪,有人收藏了这个问题,但没有点赞。在SO上这种情况常见吗? - Mike Burton
顺便问一下,有没有任何.NET/Fitnesse验收测试的教程? - HichemSeeSharp
3个回答

9
所以,你可以在nUnit中编写验收测试,但这样做就失去了重点。Fitnesse应该是应用程序的替代UI,可以表达详细的断言流程:
用户执行此操作 用户执行那个操作 用户现在看到了这个
理想情况下,健身层能够直接坐落在您的应用程序的最顶层,替换最终呈现层。
单元测试工具并不真正为此而设计,你可以这样做吗?当然可以。但是很奇怪。
另外,在我看来,你对“你希望非技术人员编写测试”的想法有些偏差。Fitnesse是一种协作工具。你应该与利益相关者一起编写测试,并给予反馈和建议。然后,它还具有文档的好处。因此,一年后,当有人想知道系统为什么会这样工作时,你可以打开测试,以BA可以理解的方式显示(不像nUnit),然后说,好的,我们要改变它吗?

5
FitNesse和NUnit的设计目的完全不同。在NUnit中进行验收测试意味着首先必须用代码编写整个测试套件。而FitNesse的设计是希望您可以在准备好一定水平的情况下,使用数据编写测试。这些是非常不同的操作模式,它们适用于非常不同的资源。它们也鼓励对世界产生非常不同的看法——FitNesse测试案例设计者的工作基于一个非常简单、直接的转换将会发生的假设,而NUnit用户则拥有关于该转换如何工作以及与转换本身无关的系统钩子的大量知识。
如果您无法让利益相关者编写用例和功能测试,则需要一个替代利益相关者的人员,这就是传统QA部门的作用。没有利益相关者来做这些事情并不是不做的借口。
使用FitNesse读取数据而不是自定义格式的好处非常简单:这是输入测试用例的标准方式。如果您没有看到其中的好处,也许您需要花一些时间走您描述的路径,因为最终您会遇到一些问题,也许它们会帮助您理解。

1

针对你的问题,典型的答案是:

“高级别测试(如验收测试)在发现问题之前非常好。但是一旦出现问题,如果没有单元测试,那么你唯一知道的就是有东西出了问题——而不是具体哪里出了问题或者应该在哪里进行修复。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接