RSpec을 사용하여 클래스 인스턴스에 대해 테스트를 두 배로 만들려고합니다. File 객체 만 인수로 받아들이는 테스트가 있다고 가정 해 보겠습니다.
좋아, 이제 모든 사양이 포함 된 실제 파일을 전달할 필요가 없도록 더블을 어떻게 만드나요?
let(:file) { double(File) }
raise "NOT A FILE" unless file.is_a? File
# => RuntimeError: NOT A FILE
나는 또한 이것을 시도했다 :
let(:file) { instance_double(File) }
raise "NOT A FILE" unless file.is_a? File
# => RuntimeError: NOT A FILE
그리고 이것은 (실제 파일을 기대하고 있습니다) :
let(:file) { object_double(File.new) }
# => ArgumentError: wrong number of arguments
내가 도대체 뭘 잘못하고있는 겁니까?
is_a?
전화를 스텁 할 수 있습니다 .
file = instance_double(File)
allow(file).to receive(:is_a?).with(File).and_return(true)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다