我的控制器和我的测试文件如下。
控制器/ reports_controller.rb:
def index
@reports = Report.all
end
规格/控制器/ reports_controller_spec.rb:
RSpec.describe ReportsController, type: :controller do
let(:test_report) {
2.times.map {
create(:report, student: create(:student), report_options_attributes: [
{option: create(:option), note: "ole" }
])
}
}
describe "GET #index" do
before(:each) do
get :index
end
it "should be success" do
expect(response).to be_success
end
it "should render index template" do
expect(response).to render_template(:index)
end
it "should load all reports" do
expect(assigns(:report)).to match_array test_report
end
end
最后一次测试不起作用,但应该可行。这有什么问题?
答案 0 :(得分:2)
索引测试是空的......你需要断言要通过的东西。
可以在索引函数中添加.. assert_response :success
。
答案 1 :(得分:0)
您的var与控制器不同。使用报告而不是这样的报告:
it "should load all reports" do
expect(assigns(:reports)).to match_array test_report
end
它应该有用。