7

据我了解,在某些情况下您可能想要使用 FitNesse。

  • 你想做验收测试而不是单元测试。
  • 您想将其用作与利益相关者的沟通工具。
  • 您想要进行大规模测试而不是细粒度测试。
  • 您希望非技术人员编写测试。

我个人的看法和经验是:

  • 我可以使用 NUnit 等工具进行验收测试。Fitnesse 基本上只是一个在 .NET 程序集上调用公共方法的框架,可以使用 NUnit 来完成。
  • 利益相关者告诉我他们想要什么。他们很少对编写 Fitnesse 测试感兴趣。他们似乎还有其他/更好/更重要的事情要做。
  • 您可以使用 FitNesse 进行大规模测试。据我所知,您必须将这些大规模测试的所有输入输入到 Web 浏览器中的纯文本编辑器中。这会比从磁盘上的文本文件、excel 文件或数据库中读取输入数据更容易吗?当然,您可以在 Web 界面中指定磁盘上文件的路径,但这比使用 NUnit 读取同一个文件有什么好处呢?
  • 这些非技术人员必须在网站上的文本编辑器中按照非常特定的语法编写代码,稍后将调用 .NET 程序集。.NET 代码变得杂乱无章,因为非技术人员不懂编程,但他仍在指定程序集应该如何工作。

有人可以就这个问题分享一些其他意见吗?FitNesse 对您有何价值?

4

3 回答 3

9

所以是的,你可以在 nUnit 中编写验收测试,但这没有抓住重点。Fitnesse 应该是您的应用程序的替代 UI,它表达了详细的断言流:

用户执行此操作 用户执行此操作 用户现在看到此

理想情况下,适应层能够直接位于应用程序的最顶层,以取代最终的渲染层。

单元测试工具并不是真的为此而设计的,你能做到吗?当然。但这很奇怪。

在我看来,另一件事是您对“您希望非技术人员编写测试”的想法有些偏离。Fitnesse 是一种协作工具。您应该与利益相关者一起编写测试,提供并获得反馈。然后,它具有作为文档的好处。所以一年后,当有人想知道系统为什么会这样工作时,你可以调出测试,以 BA 可以理解的方式显示(不像 nUnit),然后说,就是这样,我们应该改变它吗?

于 2010-02-10T16:07:00.677 回答
5

FitNesse 的设计目的与 NUnit 完全不同。首先,使用 NUnit 进行验收测试意味着必须用代码编写整个测试套件。FitNesse 的设计初衷是让您可以在一定程度的准备下,在数据中编写测试。这些是非常不同的操作模式,它们适用于非常不同的资源。他们还鼓励人们对世界有不同的看法——FitNesse 测试用例设计者的工作假设是一个非常简单、直接的转换将会发生,而 NUnit 用户对这种转换是如何工作的并且有很多了解进入与转换本身无关的系统。

如果您无法让利益相关者编写用例和功能测试,那么您需要为这些利益相关者提供一个替身,这就是传统的 QA 部门的用武之地。没有利益相关者来做这些事情并不是不这样做。

使用 FitNesse 通过自定义格式读取数据的好处非常简单:这是输入测试用例的标准方式。如果您没有看到其中的好处,也许您需要花一些时间沿着您描述的路径走下去,因为最终您会遇到一些障碍,也许它们会帮助您理解。

于 2010-02-10T16:06:12.257 回答
1

您问题的典型答案是

“在您发现问题之前,更高级别的测试(例如验收)非常好。那时,如果您没有单元测试,那么您唯一知道的就是某些东西出了问题——而不是具体的问题或修复的地方应该应用。”

于 2010-02-10T16:00:31.517 回答