【发布时间】:2014-03-31 06:45:21
【问题描述】:
这是我的模块。我喜欢测试方法 load_csv
我参考了这个例子Example Link
并编写了这段代码。下面是模块代码
require 'csv'
module DummyModule
class Test
def load_csv(filename)
CSV.read(filename, :row_sep => "\r", :col_sep => "\t")
end
end
end
这是我的 Rspec
require 'spec_helper'
describe DummyModule do
let(:data) { "title\tsurname\tfirstname\rtitle2\tsurname2\tfirstname2\r" }
let(:result) { [["title", "surname", "firstname"], ["title2", "surname2", "firstname2"]] }
before(:each) do
@attribute_validator = TestAttributeValidator.new
end
it "should parse file contents and return a result" do
puts data.inspect
puts result.inspect
File.any_instance.stubs(:open).with("filename","rb") { StringIO.new(data) }
@attribute_validator.load_csv("filename").should eq(result)
end
end
class TestAttributeValidator
include DummyModule
end
它给了我这个错误
DummyModule should parse file contents and return a result
Failure/Error: @attribute_validator.load_csv("filename").should eq(result)
NoMethodError:
undefined method `load_csv' for #<TestAttributeValidator:0xd0befd>
# ./spec/extras/dummy_module_spec.rb:15:in `(root)'
请帮忙
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 unit-testing rspec