Rspec2 为什么RSpec中存在不同的变量?

Rspec2 为什么RSpec中存在不同的变量?,rspec2,rspec-rails,Rspec2,Rspec Rails,在RSpec测试中使用局部变量、实例变量和使用“let”方法创建的变量之间有什么区别?如果需要重用变量,则使用let是最佳选择,否则局部变量可能更有意义。但考虑到差异,您可以自己决定: 局部变量 只能从一个测试中访问,即不能重复使用 实例变量 可从示例组中的所有测试访问。在示例组中的每个测试运行中分配和评估 让 可从示例组中的所有测试访问。延迟评估,因此只有在测试中实际使用它时才创建它(以及创建它的代码) 如果变量在逻辑上属于上下文或描述块而不是单个测试,则let仍然有意义,而不是局部变量,但这

在RSpec测试中使用局部变量、实例变量和使用“let”方法创建的变量之间有什么区别?

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

局部变量 只能从一个测试中访问,即不能重复使用

实例变量 可从示例组中的所有测试访问。在示例组中的每个测试运行中分配和评估

让 可从示例组中的所有测试访问。延迟评估,因此只有在测试中实际使用它时才创建它(以及创建它的代码)

如果变量在逻辑上属于
上下文
描述
块而不是单个测试,则
let
仍然有意义,而不是局部变量,但这是基于测试结构的首选项