2014-10-13 2 views
0

나는 rspec 프로그램을 다루고 있는데, PC가 "should"를 "expect"로 변환하도록 강요하고있는 것 같다.
다음과 같은 rspec 설정으로 대부분 처리 할 수 ​​있었지만 문제가 발생했습니다.ruby ​​rspec에서 "should"를 "expect"로 변환한다.

대부분의 다른 '형식'은 응답이 == something이어야하고 쉽게 (passed_in_value) .to eql (returned_value)로 변환됩니다.
그러나이 경우에는 지정된 숫자에 블록을 추가하여 전달하는 것으로 믿을 수 있습니다. 단, expect (end) .to eql (6) 또는 반환 값이 무엇이든간에 변환 할 수 없습니다. .

이 봐, 그리고 당신이 어떤 생각을 가지고 있다면, 그 작업을 수행하는 여러 가지 방법이있어

it "adds one to the value returned by the default block" do 
    adder do 
    5 
    end.should == 6 
end 

it "adds 3 to the value returned by the default block" do 
    adder(3) do 
    5 
    end.should == 8 
end 
+1

내 생각 엔 당신이 RSpec에의 새로운 버전으로 업그레이드한다는 것입니다. https://github.com/yujinakayama/transpec에서 자동으로 모든 사양을 변환하는 작업을 수행 했으므로 – Doon

+0

안녕하십니까, 링크와 생각에 감사드립니다. 아마도 그렇게 할 필요가 있음을 알고 있지만 과거에는 새로운 버전으로 마이그레이션하는 데 문제가 있었고이를 얻고 싶었 기 때문에 프로그램을 테스트 할 수있었습니다. 일단 내가해야 할 모든 프로그램으로 끝내면, 업그레이 드에 당신을 데려 갈 것이다. 다시 감사합니다 – 2iron

+0

나는 PC에 의해 그냥 변환해야합니다 기대해야합니다. 새 버전을 치면 그 일이 일어납니다. 그래서 당신은 이미 업그레이드했다고 생각했습니다. – Doon

답변

1

에 전달할 바랍니다. respond_to와 의견에서

 
result = adder(3) do 
    5 
end 
expect(result).to eq(8) 

expect do 
    adder(3) do 
    5 
    end 
end.to eq(8) 

block = -> do 
    5 
end 
expect(adder 3, &block).to eq(8) 

예 :

 
it "has a #sum method" do 
    [].should respond_to(:sum) #old syntax 
    expect([]).to respond_to(:sum) #new syntax 
end 
+0

감사합니다 알렉스 .... 첫 번째 사용하고 매력처럼 일한 .. 또는 적어도 내가 테스트 한 코드가 작동했습니다. 물론 도움을 주셔서 감사합니다. – 2iron

+0

rspec 문제를 잔뜩하고. 여기에 또 하나의 질문이있을 것입니다 : ********** "#sum"do ""#sum 메서드가 있습니다 "do do expect ([ ]).을 eql (true) .should respond_to (: sum) end *********이 테스트와 관련하여 또 다른 일반적인 질문 이겠지요 ... 일반 용어로 설명하거나 정확히 정확하게 설명 할 수 있습니까? 를 찾고 있습니다? 다시 도움을 주셔서 감사합니다 – 2iron

+0

오, 당신은 하나의 성명에서 기대하고 있어야합니다. 너는 단지 그것을 다시 써야 할까? 왜냐하면 나는 그것을 이해할 수 없기 때문이다. –

관련 문제