2017-12-14 1 views
0
allow(object).to receive(:method).and_return(true, false, true, true, true) 

어떻게 이러한 부울 값을 루프를 통해 추가 할 수 있습니까?Rspec 루프를 통해 부울을 추가하는 방법 and_return()

내 코드는 지금이 시도이

allow(object).to receive(:method).and_return(booleans[0], booleans[1], booleans[2], booleans[3], booleans[4]) 
+0

나는 이것을 모르고 있지만'and_return'에 1 개 이상의 값을 반환 할 수 있습니까? 어떻게 작동합니까? –

+0

@JagdeepSingh n 번째 호출은 다음과 같이'and_return'리스트에서 n 번째 값을 얻습니다 ... 더 많은 호출이 만들어지면 값이 지정되고 이후 호출의 마지막 값을 계속 반환합니다 –

+0

알겠습니다. 아래 해결 방법이 @ user3743992에서 효과가 있습니까? –

답변

0

과 같이됩니다 :

# Not sure if you can return more than 1 value from here 
allow(object).to receive(:method).and_return(*booleans) 

booleans의 요소의 수는 인수의 수와 일치하는 경우 방법 5.

을 즉 boolean 배열을 반환하면 대신 다음을 수행 할 수 있습니다.

allow(object).to receive(:method).and_return(booleans) 
+0

해결책 (* 불리언)을 해결해 주셔서 감사합니다. –

+1

인수의 수를 일치시킬 수 없습니다 - ['and_return'] (https://relishapp.com/rspec/rspec-mocks/docs/configuring-responses/returning-a-value)는 _variable_ 개의 인수를 취합니다. 각 메소드는 스텁 된 메소드에 대한 후속 호출의 리턴 값으로 사용됩니다. – Stefan

+0

차가움. 나는 그것을 알지 못했다. 감사. :) –

관련 문제