我有以下方法來創建一個新的連接對象。它會打開一個串口。請注意,當端口不存在時它會失敗。規格中的旁路初始化器
class Connection
def initialize(port)
begin
@serial = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
rescue
exit(1)
end
end
def send_command
@serial.write "Something"
end
end
我爲這種方法寫了一個RSpec規範,到目前爲止這麼好。現在,我想說明下一個方法,「send_command」。
問題是我不能在本規範中調用Connection.new("/some/port")
,因爲它會失敗(端口不存在)。我怎樣才能繞過創建方法,而不會殘留新方法?如果我理解正確,我不允許存根或模擬正在測試的課程,對吧?
謝謝!
是的,你對依賴注入是正確的,這正是爲什麼它更難以測試。我將提取SerialPort類並將其作爲參數傳遞。謝謝! – Cimm 2011-03-12 23:14:32