如何编写程序来测试另一个程序/脚本?
我需要测试一个作为echo服务器的ruby脚本;我该如何编写程序来验证echo服务器脚本的正确工作?
答案 0 :(得分:1)
答案 1 :(得分:1)
对于TCP echo服务器,您可以从这样的事情开始:
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 :: Unit,Cucumber ......
编辑:它适用于以下的echo服务器,我只需要在客户端数据中添加'\ n'
require 'socket'
port = 2000
server = TCPServer.open(port)
loop {
client = server.accept
data = client.gets
client.puts data
client.close
}
答案 2 :(得分:0)
Ruby有一个名为Test::Unit的内置单元测试框架。但是,我更倾向于使用Rspec BDD框架。理想情况下,BDDers喜欢在实际代码之前编写测试,但你可以在事后编写测试。