【问题标题】:Robot Framework Succeed on Exception机器人框架异常成功
【发布时间】:2014-11-06 00:33:55
【问题描述】:

我正在测试一个软件组件,并希望该软件在某些情况下抛出异常。 我想通过使用机器人框架来重现这些情况。

  • 如果我捕捉到一个特定的异常,测试用例就会成功(这是我所期待的,因为我故意在我的被测组件中创建一个错误状态)
  • 如果我没有收到特定的异常,测试用例将失败(即我的被测组件在错误情况下没有失败(抛出异常))

我正在寻找的是这样的:

prepareErrorInTestEnvironment
try 
    executeComponentWhichThrowsException
except
    pass
fail

【问题讨论】:

    标签: exception testing robotframework


    【解决方案1】:

    “预期异常”的处理在 Robot Framework 中有些特殊,因为通常异常会导致关键字失败,从而导致测试失败。 您要查找的关键字是Run Keyword and Expect Error

    你的测试看起来像

    *** Test Cases ***
    my test
        prepareErrorInTestEnvironment
        Run Keyword and Expect Error  TheExceptionYouExpect  executeComponentWhichThrowsException
    

    如果你得到正确的异常,这将成功,否则失败

    【讨论】:

    • 我们如何实现一个测试用例的流程(这里的“executeComponentWhichThrowsException”是干净的并且可能不会产生任何异常......这个关键字强制期望远程端出现错误。以防万一“executeComponent”不会产生任何异常这个关键字返回“测试用例预期的错误'safeException:*'没有发生。”
    【解决方案2】:

    我相信try/else是你想要的

    prepareErrorInTestEnvironment
    try:
        executeComponentWhichThrowsException
    except:
        pass
    else: 
        fail
    

    你也可以返回 on 除非这样 fail 不会执行:

    prepareErrorInTestEnvironment
    try:
        executeComponentWhichThrowsException
    except:
        *dosomething*
        return
    fail
    

    【讨论】:

    • 我认为我的“python”标签有点误导,因为我实际上是在寻找机器人框架解决方案感谢回复我将删除“python”标志,因为我的问题不是机器人框架独有的仅使用 python
    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 2015-10-06
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2017-03-30
    • 2016-04-26
    • 2019-12-18
    相关资源
    最近更新 更多