assign在rspec-rails中做了什么?

use*_*030 9 ruby unit-testing rspec ruby-on-rails rspec-rails

我正在处理我没有写过的代码,并试图了解RSpec的工作原理.

let(:course) { create :new_course }
before { assign :course, course }
Run Code Online (Sandbox Code Playgroud)

我知道这let会创建一个memoized变量.assign这个例子做了什么?

Dav*_*uth 11

您必须查看视图规范.在rspec-rails视图规范中,assign将其第二个参数分配给由第一个参数命名的模板实例变量.在您的示例中,assign :course, course@course模板中的值设置为course.

更多信息:https://www.relishapp.com/rspec/rspec-rails/v/3-3/docs/view-specs/view-spec