强制RSpec测试失败的正确方法是什么?
我正在考虑1.should==2,不过可能还有更好的
fail/raise会起作用(它们是彼此的别名)
范例
指定“此测试失败”是否执行
提出“这是我的失败信息”
终止
在以下情况下失败:
1)此测试失败
失败/错误:引发“这是我的失败消息”
运行时错误:
这是我的失败信息
替代品
如果您想在规范中使用 Ap/ />代码>失败/代码>,您应该考虑到可能有更明确的方式来编写您的期望。
此外,raise/fail不能很好地处理aggregate\u故障,因为异常会使块短路,并且不会运行任何后续匹配程序
将测试标记为挂起
如果需要将测试标记为挂起以确保返回测试,可以使用fail/raise,但也可以使用pending
#🚫 与此相反:
它“应该做点什么”去做
# ...
提出“这需要实施”
终止
# ✅ 试试这个:
它“应该做点什么”去做
待定“这需要实施”
终止
断言未调用块
如果您需要确保一个块没有被执行,请考虑使用收益率>代码>匹配器。例如:
描述“可枚举的”#有吗
# 🚫 与此相反:
它“如果集合为空,则不会向块屈服”do
有吗?{raise“它不应该调用此块”}
终止
# ✅ 试试这个:
它“如果集合为空,则不会向块屈服”do
期望{b |[]任何?(&;b)}。不放弃控制权
终止
终止