【问题标题】:spockframework: check expected result after every featurespockframework:检查每个功能后的预期结果
【发布时间】:2015-05-21 12:16:27
【问题描述】:

我正在使用 spockframework 和 geb 进行测试自动化。我想在每个功能之后执行一个简单的检查,以确保没有显示错误对话框,我添加了以下 cleanup() 方法:

 def cleanup() {
    expect:
    $('.myErrrorDialogClass').isEmpty()
 }

代码在每个功能之后执行,但在显示对话框时不会抛出任何错误。

【问题讨论】:

  • 我不确定cleanup 是否意味着其中包含断言。您确定您的期望实际上是作为断言执行的吗?如果您真的需要在cleanup 中执行此操作,可以尝试使用普通的assert 调用而不是期望。
  • 我需要在每个功能/测试后执行此操作。从文档中我看到 cleanup() 在每个功能之后执行。但是,正如您所说,也许并不意味着其中有断言。还有其他选择吗?
  • 您可以尝试使用assert 呼叫。 Spock 使用 AST 转换为其标签(whenexpect 等)连接正确的行为,也许他们甚至不会在 cleanup 方法上运行转换。一个简单的 assert 仍然可以工作,因为它是 Groovy 本身的一部分。
  • 你是对的!我唯一担心的是清理方法中的简单断言不是测试报告的一部分。我试过它就像一个魅力:当测试失败时,报告包括它。太棒了!

标签: groovy automated-tests spock geb


【解决方案1】:

Spock 使用 AST 转换来连接每个测试标签的功能(whenexpect 等);他们可能不会在 cleanup 方法上运行转换。他们要么不期望或不鼓励清理中的断言,因此代码可能运行但实际上没有断言任何东西。

您可以通过使用不带 expect 块的标准 Groovy assert 调用来解决此问题。

从我们上面的评论讨论中总结 - 如果你想接受它作为答案;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2023-03-08
    • 2012-02-24
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多