我正在編寫一個腳本來自動對我的計算機上的文件進行排序,如屏幕截圖。我在Mac上。所以每當我截圖時,它都會在我的桌面上創建。該腳本的一部分目的是時常清理桌面。我已經見過的大多數Ruby腳本都是無類的(har har),但是我已經決定讓我的類升級,所以我可以使用RSpec和TDD來測試我所做的一切,練習我的RGR循環。在RSpec測試中調用Model方法時出現NoMethodError
Failures:
1) Mover#chdir changes the directory
Failure/Error: chdir(@mover.target_dir)
NoMethodError:
undefined method `chdir' for #<RSpec::ExampleGroups::Mover::Chdir:0x007ffae608f898> # ./spec/models/mover_spec.rb:18:in `block (3 levels) in <top (required)>'
代碼本身:
class Mover
$home = Dir.home
attr_accessor :file_type, :working_dir, :target_dir
def initialize(file_type, working_dir, target_dir)
@file_type = file_type
@working_dir = working_dir
@target_dir = target_dir
end
def chdir(dir)
end
end
mover = Mover.new("/Screen Shot\s\d*.\d*.\d*\sat\s.*.png/g", "Desktop", "/Desktop/screenshots")
然後規範
我上運行的方法的RSpec的測試稱爲在一個所謂的「移動器」類「的chdir」當收到此錯誤:
describe Mover do
before do
@mover = Mover.new("/Screen Shot\s\d*.\d*.\d*\sat\s.*.png/g", "Desktop", "/Desktop/screenshits")
end
describe "#initialize" do
it "Initializes the object." do
expect(@mover.class.name).to eq("Mover")
end
end
describe "#chdir" do
it "changes the directory" do
#chdir(@mover.target_dir)
end
end
end
該違規行被註釋掉。我真的被難住爲什麼會發生這種情況。任何幫助,將不勝感激。
鏈接到GitHub庫,以防萬一:https://github.com/swolegrammer/ruby-file-mover