【问题标题】:RobotFramework: Why write tests in keywords/robot-framework syntax at all? [closed]RobotFramework:为什么要使用关键字/机器人框架语法编写测试? [关闭]
【发布时间】:2019-08-08 17:41:41
【问题描述】:

我根本不是在问为什么我们应该使用 RobotFramework,我只是在问为什么我们应该使用它们的语法编写测试,而不是完全将测试编写为自定义库。

假设我们要编写一个查看目录并确保该目录中没有文件被更改的测试。您可以使用 Get Files In DirectoryGet Modified Time 关键字及其用于编写循环的语法在 RobotFramework 中编写它,或者您可以编写自己的完全在 Python 中执行此操作的测试(遍历目录中的文件并确保每个文件都已修改时间是在您运行正在测试的任何代码之前)。

作为一名 Python 开发人员(而不是 RobotFramework 开发人员),我想默认使用 Python 编写所有内容,并仅使用 RobotFramework 语法来检查这些自定义测试是否为真、假等。(只是出于安慰。)

编辑:澄清一下,检查修改文件的测试将是测试用例中的单个检查,而不是整个测试本身。

【问题讨论】:

  • 嗯,在我看来,重新发明轮子通常是个坏主意。你最终会得到一个已经存在的最糟糕的版本。此外,自定义代码意味着特定的内部维护,这是有成本的。最好使用通用的第三方库,您项目的新开发人员可能会认识他们并立即准备好工作。

标签: python unit-testing testing automated-tests robotframework


【解决方案1】:

简而言之,机器人框架是用于测试行为,而不是功能。

对于您提出的方案,没有理由在 Robot Framework 中编写该测试。但是,您正在执行的这项检查似乎实际上是某个更大功能的一部分。

例如,也许您的代码基于文件夹中的文件创建演示文稿,并且您希望确保在构建演示文稿后,文件夹中的所有文件都没有被修改。或者,也许您编写了一个程序来清理文件夹,但您可以指定不应包含的子文件夹。因此,您需要编写一个测试来验证运行程序后排除文件夹中的文件是否未被触及。

这些是高级描述的程序的功能或行为:“可以在不修改原始文件的情况下构建演示文稿”或“可以从处理中排除目录”。对于这些,您需要编写验收测试,而 Robot Framework 是编写这些验收测试的好选择。

例如,假设程序正在执行一些处理并且需要排除一个文件夹。你会想像这样编写一个机器人测试:

*** Test cases ***
Verify exclude feature works
    Verify the folder exists  ${data dir}/important
    Process the files  ${data dir}   exclude=important
    Assert the excluded folder didn't change  ${data dir}/important

然后您将检查所有文件的逻辑放在关键字Assert the excluded folder didn't change 中,并在进行一些处理后调用该关键字。这样,您就可以证明您的程序的高级功能正在按照客户的期望运行。

换句话说,Robot 框架不是帮助单个程序员测试单个功能的工具。相反,它是帮助团队验证整个应用程序行为的工具。

【讨论】:

    猜你喜欢
    • 2013-11-08
    • 2014-05-21
    • 2015-09-29
    • 2016-01-03
    • 1970-01-01
    • 2015-12-18
    • 2019-03-20
    • 2015-10-14
    • 2019-06-11
    相关资源
    最近更新 更多