抱歉的愚蠢的问题,我第一次使用fitnesse,我不知道我应该如何使用它进行验收测试。。。
所以第一个问题是,是否可以在整个程序上运行test(例如,在一个.jar文件上),或者运行应用程序的main()方法并从命令行获得结果。
如果答案是肯定的:这是个坏主意吗如果我理解正确,验收测试应该验证是否满足规范的要求,但是我还没有找到任何例子来说明如何在fitnesse中测试一个完整的软件。此外,我看到的每一个教程都描述了一个小例子上的小测试(甚至fitnesse.org上的两分钟教程),在我看来,这个小例子就像一个单元测试。
感谢您的帮助:)
1条答案
按热度按时间bkkx9g8r1#
fitnesse本身只是一个测试运行程序和一个维护测试定义的编辑器(使用wiki)。它的目标是让测试定义(和结果)对非程序员来说是可以理解的(甚至是可写的),这样更广泛的受众可以参与进来。
你如何使用它以及用它做什么都取决于你自己。您必须定义将测试定义耦合到您正在测试的系统的粘合代码(aka fixture)。然后编写测试来验证要检查的内容(在正确的抽象级别)。
您可以使用它来定义和运行单元测试,但实际上这并不是它的目的(就像您可以使用junit来运行验收测试一样)。旨在从功能Angular 进行测试,以验证是否满足验收标准。它们往往比类或方法的行为处于更高的抽象级别。
我通常不使用fitnesse来启动我正在测试的程序/系统,而是在它运行后验证它的行为。例如,对于一家网店,我会验证我是否能看到商品目录中的商品,将它们放在购物篮中,查看正确的总价和购买量。但fitnesse本身无法立即做到这一点。您需要编写允许wiki与浏览器交互并执行所需的单击和检查的代码。
有一些标准插件可以为rest或soap服务、浏览器、数据库等建立这种连接
我自己维护这样一个插件,它将fitnesse与selenium和其他一些库结合起来,这样就可以立即开始测试网站、服务(和命令行应用程序),而无需编写自定义代码。但它不会启动要测试的系统:您必须自己处理(您可以启动docker容器,从命令行运行,或者使用一些复杂的工具部署到远程测试服务器)。
即使使用我的项目,实际的测试定义也取决于您。所以你的测试可能只是当你点击一个复选框时,它变成选中。但在某些仓库管理应用程序中,它也可能是一个完整的客户旅程,从到达站点、浏览、支付过程到最终订单状态。
fitnesse确实支持将小测试步骤组合到更高抽象级别的操作,纯粹在测试域中(不需要用java、c#…)使用“场景”。因此,一个可以定义一个场景来封装登录所需的操作,另一个可以下订单并将这些操作组合在一起,从而生成一个场景来检查是否可以购买商品并收取正确的价格。然后可以使用这个场景来测试可能购买的各种项目,并收取正确的价格(这就是我所说的验收测试)。
使用我的项目,您可以获得一些基本的步骤,比如用浏览器打开网站、单击按钮、检查值、调用rest服务、检查xml响应。然后可以使用fitnesse编写这些步骤来创建所需的测试。