我有一个rspec测试来检查由进程写入的文件的文件大小。这是测试:
require 'spec_helper.rb'
require 'lib/sf_to_coll/convert.rb'
require 'rake'
describe SfToColl::Convert do
context "main file for single record should be 2186 chars long" do
before do
SfToColl::Convert.new("tmp/ctbrown.csv", "ctbrown_fwfile").process
end
subject { File.stat("tmp/ctbrown_fwfile_main").size }
it { should == 2186 }
after do
File.rename('tmp/ctbrown_fwfile_main', 'tmp/ctbrown_fwfile_main.bak')
end
end
end
此测试目前失败,但在测试后检查目录时,文件存在且文件大小为2186.
然而,当我在这一行输入binding.pry时:
it { binding.pry; should == 2186 }
并且不向代码添加任何其他内容,在撬开后继续测试。
Convert#process方法接受.csv文件并生成一系列固定宽度的行,这些行必须正好是2186个字符长。
这是一个线程问题吗?我试过在线上添加一个线程
SfToColl::Convert.new("tmp/ctbrown.csv", "ctbrown_fwfile").process
没有成功。