2010-07-16 2 views
-1

다른 프로그램/스크립트를 테스트하는 프로그램을 작성하는 방법은 무엇입니까?다른 프로그램/스크립트의 유효성을 검사하는 프로그램을 작성하는 방법은 무엇입니까?

에코 서버 인 루비 스크립트를 테스트해야합니다. echo 서버 스크립트의 올바른 작동을 검증하는 프로그램을 어떻게 작성해야합니까?

+0

에코 서버에 연결하고, 무언가를 인쇄하고, 무언가를 읽고, 읽은 내용을 비교하는 클라이언트가 필요합니다. – philant

+0

예. echo 서버가 작동하고 telnet을 사용하여 수동으로 테스트했습니다. 테스트 프로세스를 자동화하여 텔넷 클라이언트가 보내는 내용을 에코 서버가 표시하도록해야하므로이 스크립트/prog로 작성해야합니다. 다른 언어 또는 루비 그 자체. –

+0

파이썬에는'telnet' 라이브러리가 있습니다. 루비도 하나라고 생각합니다. 텔넷을 사용하여 테스트 할 수 있다면 자동화를 위해 라이브러리를 사용하는 것이 간단해야합니다. –

답변

1

ExpectdejaGnu에 관심이 있으실 것입니다.

require "socket" 

hostname = "localhost" 
port = 2000 

s = TCPSocket.open(hostname, port) 

s.print "something\n"  # was "something" 

line = s.gets 
line.chop! 

if line == "something" 
    puts "echo test passed" 
else 
    puts "echo test failed: rcvd [#{line}]\n" 
end 

s.close 

당신이, 당신은 몇 가지 소켓, 다중 스레드를 사용하여 테스트 클라이언트를 성장할 수있는 필요한 어떤 종류의 테스트, 테스트 프레임 워크를 따라 : 당신은 TCP 에코 서버에 대해이 같은 뭔가를 시작할 수

1

이러한 테스트 : 단위, 오이 ... 등


편집 : 그것은 에코 서버 다음, 난 그냥 클라이언트 데이터에 '\ n을'을 추가했다 작동

require 'socket' 

port = 2000 

server = TCPServer.open(port) 
loop {       
    client = server.accept 
    data = client.gets 
    client.puts data 
    client.close 
} 
+0

오, 미안하지만,이게 작동하지 않아, 나는 에코 서버에이 클라이언트를 사용했다. 그러나 개념은 원하는 것이 었습니다. –

+0

글쎄요, 위의 서버에서 작동합니다. 단지 교환 된 문자열에'\ n'을 추가해야했습니다. – philant

0

Ruby에는 Test::Unit이라는 단위 테스트 프레임 워크가 내장되어 있습니다. 그러나 BDD 프레임 워크 Rspec을 사용하는 것이 더 좋습니다. BDD는 실제 코드보다 먼저 테스트를 작성하는 것이 가장 이상적이지만 사실 후에 테스트를 작성할 수 있습니다.

관련 문제