用于检查文件大小的rspec测试失败

时间:2014-01-30 21:34:58

标签: ruby-on-rails ruby rspec

我有一个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

没有成功。

0 个答案:

没有答案