应该由Robotframework库进行比较

问题描述 投票:0回答:1

所以我不知道这是否是关于口味的更多问题,但我想知道以下内容:

我正在编写一个机器人框架库,该库将提供一些自定义关键字。更确切地说,它打开一个UDP连接,通过该连接可以写和读数据。

回读的数据将与预期值进行比较。

我看到两种实现库的基本方法:

库内部比较(使用python代码)

创建以下关键字:

def read_and_expect(self, expectedValue):
    ...
    if(readValue != expectedValue):
        raise AssertionError("error")

以及相应的机器人文件如下所示:

    *** Test Cases ***
    | Testcase1
    | | read_and_expect | ${expectedValue}

机器人文件中的比较

或从关键字返回数据

def read(self):
    ...
    return readValue

并在机械手文件中进行比较。因此,机器人文件将如下所示

    *** Test Cases ***
    | Testcase1
    | | ${result}= | read
    | | Should Be Equal | ${result} | expectedValue

问题

这些解决方案中的一种比另一种更好吗,或者实现它只是您自己的口味?

我的意见是:第二个在体系结构方面更好(一个人可以轻松切换接口,而不必关心比较)。

robotframework
1个回答
0
投票

恕我直言,当检查/声明是测试的一部分时,始终最好将它们保留在Robot中。因此,案例是独立的,阅读案例可以告诉用户所做的一切以及如何进行。有时-当它们过于复杂并且需要复杂的构造和逻辑时,他们可以使用python代码;我仍然尝试将它们放在有意义的名称后面-例如“验证数据包头是否在期望之内” (不是真实的示例:))

然而,大多数时候,即使有一些牺牲(例如,文本行较长的斑点),我还是会尝试将它们挤压在机器人中;这对不具备python知识的用户也很有帮助-他们正在学习Robot语法,现在无需在上面使用python来分散注意力。

此外,内置函数中的断言有一些小优点-日志记录可能会有所帮助(例如在不匹配时打印值),自动类型转换等。>

© www.soinside.com 2019 - 2024. All rights reserved.