我倾向于使用 before 块来设置实例变量。然后我在我的示例中使用这些变量。我最近遇到了let()。根据 RSpec 文档,它用于
let()
… 定义一个记忆化的辅助方法。该值将在同一示例中的多个调用中缓存,但不会跨示例缓存。
这与在前块中使用实例变量有何不同?还有什么时候应该使用let()vs before()?
before()
let出于以下几个原因,我总是更喜欢实例变量:
let
nil
NameError
before(:each)
@
it
相关链接可以在这里找到: http ://www.betterspecs.org/#let