【问题标题】:How do I test a python function using Robot Framework?如何使用 Robot Framework 测试 python 函数?
【发布时间】:2021-04-19 00:17:21
【问题描述】:

我正在尝试使用 Robot Framework 进行一个简单的测试,我在其中测试 python 函数并查看它们是否给了我想要的结果,但我找不到任何好的示例记录。如果测试符合我指定的预期输出,我正在提供输入并希望测试通过。如果它可以测试函数的返回语句,那就太好了。我知道 Robot Framework 通常更适合验收测试,而我所做的更符合单元测试,但它似乎仍然可以与 Robot Framework 一起使用。

这是一些代码的示例:

def init(logger_module):

        retVal = 0 # Assuming all goes well.
        #print("module_init - I am in logging module")

        global logging
        logging = logger_module

        initialize_alert_logging()

        #print("The current retVal = {}".format(retVal))
        print(retVal)

        return retVal

如果 retVal 等于 0,我希望它显示成功。现在我可以运行测试,但它并没有真正测试输出。我认为这只是表明该函数实际运行了。

这是我的机器人文件:

*** Settings ***
Library         String
Library         Collections
Library         duplicate_module_simple_logging.py

*** Variables ***
${robotVar}             FooBarBaz
${MY_DATA_TABLE_VALUES_TEMP}            {"foo": "this is foo", "bar": "this is bar"}

*** Test Cases ***
Case1
    init    logger_module

这是我的日志文件,显示测试成功:

【问题讨论】:

    标签: python unit-testing testing robotframework acceptance-testing


    【解决方案1】:

    你应该只是assign the return value of init to a variable

    然后在“Should be Equal”(或其他检查/测试)中使用此变量

    *** Test Cases ***
    Case1
        # WHEN
        ${result} =    init    logger_module
        # THEN
        Should Be Equal    ${result}     0  
    

    【讨论】:

    • 这成功了!我唯一需要修改的是我必须使用应该等于整数关键字,以便在比较它们时将两者都转换为整数,因为我认为默认情况下它将变量读取为字符串。谢谢!
    猜你喜欢
    • 2013-09-24
    • 2018-06-03
    • 2017-11-17
    • 1970-01-01
    • 2017-09-21
    • 2020-05-26
    • 1970-01-01
    • 2017-10-12
    • 2015-03-08
    相关资源
    最近更新 更多