0
모듈을 테스트하는 rspec 테스트 스위트에서 모듈을 포함하는 클래스의 동작을 평가하는 테스트가 있습니다. 아래는 보여주기위한 거친 예제입니다.rspec에서 shared_example에 클래스 이름을 전달하는 올바른 방법은 무엇입니까?
describe "MyMod" do
module MyMod; end
shared_examples_for "a class" do |klass|
it "includes the module" do
klass.included_modules.include? MyMod.should be_true
end
end
describe "when included in a class" do
before(:each) { class C; include MyMod; end }
it_behaves_like "a class", C
end
describe "when extended in a class" do
before(:each) { class C; extend MyMod; end }
it_behaves_like "a class", C
end
end
내가 it_behaves_like
이 실행될 때 클래스 C
이 오류가 발생, 정의되지 않은되고있는 문제 : 클래스를 정의하고 shared_example에 전달하는 올바른 방법을 무엇
`block (2 levels) in <top (required)>': uninitialized constant C (NameError)
을 ?
예 감사합니다. 책을 읽는 것으로 많은 의문점이 있습니다. . 나는'extend'에서 작동하지만'include'에 대한 에러를주는'let (: klass) {Class.new.extend (MyMod)}'를 시도했습니다 : "private method'include 'called". 나는 다른 접근법을 사용할 것이라고 생각한다. – starfry