【问题标题】:Testing jar files in FitNesse在 FitNesse 中测试 jar 文件
【发布时间】:2021-02-28 03:26:38
【问题描述】:

抱歉这个愚蠢的问题,我是第一次使用 FitNesse,我不确定我应该如何使用它进行验收测试...

所以第一个问题是是否有可能以某种方式在整个程序上运行测试(例如在 .jar 文件上)或运行应用程序的 main() 方法并从命令行获取结果。

如果答案是肯定的:这是一个坏主意吗? :D 如果我理解正确,验收测试应该验证是否满足规范的要求,但我还没有找到任何示例来展示如何在 FitNesse 中测试完整的软件。此外,我看到的每个教程都描述了一个对一个简单示例的小测试(甚至是 Fitnesse.org 上的两分钟教程),在我看来,这看起来像是一个单元测试。

感谢您的帮助:)

【问题讨论】:

  • 您能否更具体地说明您要测试的内容:它是命令行界面(正如您询问main())、Web 应用程序、服务还是...

标签: java jar fitnesse acceptance-testing


【解决方案1】:

FitNesse 本身只是一个测试运行器和一个用于维护测试定义的编辑器(使用 wiki)。它的目标是为非程序员提供可理解(甚至可写)的测试定义(和结果),以便更广泛的受众可以做出贡献。

如何使用以及用于什么取决于您自己。您必须定义将测试定义耦合到您正在测试的系统的胶水代码(又名固定装置)。然后编写测试来验证您想要检查的内容(在正确的抽象级别上)。

您可以使用它来定义和运行单元测试,但这确实不是它的用途(就像您可以使用 jUnit 来运行验收测试一样)。它旨在从功能的角度进行测试,以验证是否满足验收标准。这些往往比类或方法的行为处于更高的抽象级别。

我通常不使用 FitNesse 来启动我正在测试的程序/系统,而是在它运行后验证其行为。例如,对于网上商店,我会验证我可以查看目录中的商品,将它们放入购物篮,查看正确的总价和购买情况。 但 FitNesse 本身并不能立即做到这一点。您需要编写允许 wiki 与浏览器交互并执行所需点击和检查的代码。

存在一些标准插件来为 REST 或 SOAP 服务、浏览器、数据库等建立这种连接

我自己维护such a plugin that combines FitNesse with Selenium and some other libraries,因此无需编写自定义代码即可立即开始测试网站、服务(和命令行应用程序)。但它不会启动要测试的系统:您必须自己处理(您可以启动 docker 容器、从命令行运行或使用一些复杂的工具部署到远程测试服务器)。

即使使用我的项目,实际的测试定义也取决于您。因此,您的测试可能只是当您单击一个复选框时,它会被选中。但它也可能是一个完整的客户旅程,从到达站点、浏览、支付流程到某些仓库管理应用程序中的最终订单状态。

FitNesse 确实有助于支持将小测试步骤组合到更高抽象级别的操作,纯粹在测试域中(无需使用 Java、C# 编程......),使用“场景”。因此,一个人可以定义一个场景来封装登录所需的操作,另一个是下订单并将这些操作组合起来以创建一个场景来检查可以购买的商品并收取正确的价格。然后可以使用此场景来测试可能购买的各种物品并收取正确的价格(这就是我所说的验收测试)。

使用我的项目,您可以获得执行以下操作的基本步骤:使用浏览器打开网站、单击按钮、检查值、调用 REST 服务、检查 XML 响应。然后,您可以使用 FitNesse 组合这些步骤来创建您想要的测试。

【讨论】:

    猜你喜欢
    • 2017-10-11
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多