RSpec中挂起的测试有什么用?例如:
xit "it is named Ash" do
或
it "it is named Ash"
谢谢大家!
yeotifhr1#
其思想是暂时禁用一个示例。挂起的示例不执行,并标记为挂起。一个这样的用例是如果你想运行一个完整的规范,除了一两个例子。你可以把它们标记为挂起,而不是注解掉。另一个原因是为一些你知道必须实现,但目前还没有实现的东西编写规范。在执行报告中,您将看到x个示例,y个失败,z个待定要将一个示例标记为挂起,可以在it前面放置一个x,正如您已经发现的那样,或者在您希望挂起的位置放置:
it
x
pending 'some reason'
如果执行后者,则将执行该示例中的代码,但该示例将被视为挂起,而不是成功或失败。没有主体的示例(do-end块)也被视为待定。
do
end
wqlqzqxt2#
作为测试输入,pending()是指已运行但预计会失败的测试。实际上,突然通过的pending()测试将使测试运行失败。理想的使用情形是,如果您针对突然停止工作一两天的外部API运行测试,则可以将其标记为挂起以解除阻止CI,但仍会在您可以重新启用它们时通知您。这与skip()相反,skip()会导致测试被完全跳过而不运行。例如,如果您有一个特定的测试通过,但需要很长时间来运行,您可能希望在处理该代码区域时只在本地运行,但标记为skip(),以便从CI中忽略它。令人困惑的是,“跳过”和“待定”测试均打印为pending输出:
pending()
skip()
pending
# test marked as skipped 1 example, 0 failures, 1 pending
一般来说,在其他语言测试生态系统中,将pending定义为仍在运行的测试的概念相对来说并不常见,加上测试结果中“pending”一词的过多使用,难怪人们会感到困惑,认为pending()和skipped()是一样的!
skipped()
2条答案
按热度按时间yeotifhr1#
其思想是暂时禁用一个示例。挂起的示例不执行,并标记为挂起。
一个这样的用例是如果你想运行一个完整的规范,除了一两个例子。你可以把它们标记为挂起,而不是注解掉。另一个原因是为一些你知道必须实现,但目前还没有实现的东西编写规范。
在执行报告中,您将看到
x个示例,y个失败,z个待定
要将一个示例标记为挂起,可以在
it
前面放置一个x
,正如您已经发现的那样,或者在您希望挂起的位置放置:如果执行后者,则将执行该示例中的代码,但该示例将被视为挂起,而不是成功或失败。
没有主体的示例(
do
-end
块)也被视为待定。wqlqzqxt2#
作为测试输入,
pending()
是指已运行但预计会失败的测试。实际上,突然通过的pending()
测试将使测试运行失败。理想的使用情形是,如果您针对突然停止工作一两天的外部API运行测试,则可以将其标记为挂起以解除阻止CI,但仍会在您可以重新启用它们时通知您。这与
skip()
相反,skip()
会导致测试被完全跳过而不运行。例如,如果您有一个特定的测试通过,但需要很长时间来运行,您可能希望在处理该代码区域时只在本地运行,但标记为skip()
,以便从CI中忽略它。令人困惑的是,“跳过”和“待定”测试均打印为
pending
输出:一般来说,在其他语言测试生态系统中,将pending定义为仍在运行的测试的概念相对来说并不常见,加上测试结果中“pending”一词的过多使用,难怪人们会感到困惑,认为
pending()
和skipped()
是一样的!