如何编写程序来验证另一个程序/脚本?

时间:2010-07-16 09:52:30

标签: python ruby testing validation

如何编写程序来测试另一个程序/脚本?

我需要测试一个作为echo服务器的ruby脚本;我该如何编写程序来验证echo服务器脚本的正确工作?

3 个答案:

答案 0 :(得分:1)

您可能对ExpectdejaGnu感兴趣。

答案 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喜欢在实际代码之前编写测试,但你可以在事后编写测试。