为什么RSpec内有不同的变量?

时间:2012-07-16 00:39:54

标签: rspec2 rspec-rails

在RSpec测试中使用局部变量,实例变量和使用'let'方法创建的变量有什么区别?

1 个答案:

答案 0 :(得分:1)

如果需要重用变量,使用let是最佳选择,否则局部变量可能更有意义。但是你可以自己决定差异:

本地变量

只能在一次测试中访问,即无法重复使用。

实例变量

可从示例组中的所有测试访问。在示例组中的每次测试运行时分配和评估。

可从示例组中的所有测试访问。懒惰地进行了评估,因此只有在测试中实际使用它时才会创建它(以及创建它的代码)。

如果变量逻辑上属于letcontext块而不是单个测试,那么describe可能仍然有意义而不是局部变量 - 但这是基于测试结构的偏好