[英]how to write a program to validate another program/script?
如何編寫一個程序來測試另一個程序/腳本?
我需要測試作為回顯服務器的ruby腳本; 我應該如何編寫一個程序來驗證echo服務器腳本的正確工作?
您可能對Expect和dejaGnu感興趣 。
您可以從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 :: Unit,Cucumber之類的測試框架...
編輯:它與以下回顯服務器一起使用,我只需要向客戶端數據添加一個'\\ n'
require 'socket'
port = 2000
server = TCPServer.open(port)
loop {
client = server.accept
data = client.gets
client.puts data
client.close
}
Ruby有一個稱為Test :: Unit的內置單元測試框架。 但是,我傾向於使用Rspec BDD框架。 理想情況下,BDDer喜歡在實際代碼之前編寫測試,但是您當然可以在事實之后編寫測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.