1
개체가 특정 경우에 최적화를 사용하는지 테스트하려고합니다. 그래서 Ruby Rspec3는 내부 메소드에 대한 호출을 한 번받을 것으로 예상합니다.
class Bar
attr_reader :n
def initialize(n)
@n=n
end
def a
if @n <= 3
b1
else
b2
end
end
def b1
@n+=1
end
def b2
@n+=1 ##super fast addition
end
end
내가 작성하려고 코드
의 종류가 그런 RSpec에bar=Bar.new(5)
allow(bar).to receive(:b2).and_call_original
bar.a
expect(bar).to receive(:b2).once
expect(bar.n).to eq 6
그러나 그것은 작동하지 않습니다 ... 당신이 kown 것이 가능합니까? 그렇다면 어떻게?
감사합니다, 내 테스트 작업 : 또한 당신은 하나의 라인으로
allow
및expect
을 병합 할 수 있습니다 – ebuprofen