rspec视图规范的默认主题是什么?
给定轨道的rspec视图规范rspec视图规范的默认主题是什么?,rspec,Rspec,给定轨道的rspec视图规范 RSpec.describe "plots/show", type: :view do describe "displaying inoculation" do context "inoculated" do it "displays 'Yes'" do assign(:plot, build(:plot)) render expect(rendered).to have_content("In
RSpec.describe "plots/show", type: :view do
describe "displaying inoculation" do
context "inoculated" do
it "displays 'Yes'" do
assign(:plot, build(:plot))
render
expect(rendered).to have_content("Inoculated? Yes")
end
end
end
end
当我尝试将隐式主题样式与it{}
一起使用时
context "inoculated" do
before do
assign(:plot, build(:plot))
render
end
it { is_expected.to have_content("Inoculated? Yes") }
end
测试失败,预期在“已接种”中找到文本“已接种?是”
我希望隐式主题是视图,但相反,主题是传递给
上下文的字符串。为什么视图规格不将视图作为规格的隐式主题?它与视图规格无关。确定默认主题时,它尝试在嵌套描述链中定位类引用。获取最内部的类(如果找到)。如果找不到,则采用最里面的值(大概是字符串)
输出
添加了更多结果。:)
RSpec.describe User do
describe 'foo' do
describe 'bar' do
it { puts subject }
it { puts subject.class }
end
end
end
RSpec.describe 'User' do
describe 'foo' do
describe 'bar' do
it { puts subject }
it { puts subject.class }
end
end
end
RSpec.describe 'User' do
describe Project do
describe 'bar' do
it { puts subject }
it { puts subject.class }
end
end
end
#<User:0x007fe77593af80>
User
bar
String
#<Project:0x007fe7924f9170>
Project
From: /Users/sergio/.gem/ruby/2.4.1/gems/rspec-core-3.6.0/lib/rspec/core/memoized_helpers.rb @ line 57:
Owner: RSpec::Core::MemoizedHelpers
Visibility: public
Number of lines: 6
def subject
__memoized.fetch_or_store(:subject) do
described = described_class || self.class.metadata.fetch(:description_args).first
Class === described ? described.new : described
end
end