如何编写一个程序来验证另一个程序/脚本?
问题描述:
如何编写一个程序来测试另一个程序/脚本?如何编写一个程序来验证另一个程序/脚本?
我需要测试一个ruby脚本,它是一个echo服务器;我应该如何编写一个程序来验证echo服务器脚本的正确工作?
答
你可以使用像这样的TCP回声服务器启动:
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
根据什么样的测试,你需要,你可以成长的测试客户端,使用几个插座,多线程,测试框架如Test ::单位,黄瓜......
编辑:它适用于以下回声服务器,我只是一个“\ n”添加到客户端的数据
require 'socket'
port = 2000
server = TCPServer.open(port)
loop {
client = server.accept
data = client.gets
client.puts data
client.close
}
+0
哦,对不起,这不起作用,我试过这个客户端为我的回声服务器。 但这个概念是理想的。 – 2010-07-17 12:24:30
+0
好吧,它可以与上面的服务器一起工作,我只需要向交换的字符串添加'\ n'。 – philant 2010-07-19 10:37:48
目前还不清楚你在问什么:你需要一个连接到回显服务器的客户端,打印一些东西,读取一些东西,比较被写入的内容。 – philant 2010-07-16 10:15:26
是的,我得到了回应服务器的工作,并用telnet手动测试过,事情是我需要自动化测试过程来验证回显服务器显示的是telnet客户端发送的内容,所以这需要写成script/prog另一种语言或红宝石本身。 – 2010-07-16 10:17:45
在Python中有一个'telnet'库,我认为Ruby也是一个。如果您能够使用telnet进行测试,则应该直接使用该库来自动执行该操作。 – 2010-08-12 10:24:39