2017-11-10 9 views
0

일부 서비스에 대한 서버 사양 코드를 작성하려고합니다. 시간 제한을 추가하여 주어진 시간 내에 명령이 응답하지 않으면 테스트 케이스가 실패해야합니다.요리사 서버 사양 (Ruby)의 Timeout.timeout (0) 의미는 무엇입니까

timeout(0)으로 시도한 경우 테스트가 통과했습니다. 이것이 타임 아웃이 없다는 것을 의미합니까?

코드 :

Timeout.timeout(0) do 
    describe 'Check' do 
    describe command('echo xxxx | nc localhost xxxx') do 
     its(:stdout) { should contain('xxxx') } 
     its(:stderr) { should match '' } 
    end 
    end 
end 

일반적으로 timeout(0) 또는 timeout(-1)은 제한 시간이 없음을 나타냅니다. serverspec과 동일합니다. 도와주세요.

답변

1

Timeout에서 문서 : 블록이 종료 (초)

번호는 대기. 소수 자리를 지정하는 부동 소수점을 포함하여 모든 숫자를 사용할 수 있습니다. 0 또는 nil 값은 시간 초과없이 블록을 실행합니다.

강조는 내 것입니다.

0

문자 그대로 아무것도 의미하지 않습니다. 다른 답변은 왜 그런지를 보여주기에 더 정확하지만, tl; dr은 코드가 쓸모가 없다는 것입니다. 누군가가 잘못해서 시간 초과로 테스트를하려고 할 때 아마도 0이 아니었던 것입니다.