rubyXL与date – 规范作品,实际使用不

使用rubyXL处理date的xlsx文件。 date处理传递的规范,但是当我尝试复制它在我自己的脚本,它不起作用。 相反,它将date保留为浮动/数字(这是date如何存储在Excel中)。 我从Github下载了rubyXL源代码并运行了这个规范。 一切都与date有关。 但是,当我在spec文件外运行以下内容时,它会显示错误的行为。

require 'rubyXL' workbook = RubyXL::Workbook.new worksheet = RubyXL::Worksheet.new(workbook) workbook.worksheets << worksheet worksheet.add_cell(0, 0, "0:0") cell = worksheet[0][0] date = Date.parse("January 20, 2011") cell.change_contents(date) puts cell.is_date? # false -- spec says it should be true puts cell.value == date # false -- spec says it should be true puts date # 2011-01-20 puts cell.value # 40563/1 <-- should be a date object 

把这个和rubyXL规范testing比较一下(cell 刚开始和我上面说的一样):

 it 'should return the value of a date' do date = Date.parse('January 1, 2011') @cell.change_contents(date) @cell.should_receive(:is_date?).any_number_of_times.and_return(true) @cell.value.should == date end 

我甚至添加了一些puts语句来检查它是否正在工作 – 这是(产出2011-01-01 – 样的事情)。 我也尝试删除除了cell_spec.rb之外的spec文件夹中的每一个其他文件,只是为了看看是否有一个设置被设置,我错过了。 仍然没有改变任何东西。

在这一点上,我感到困惑,但我相信我一定会错过简单的东西。 我只是不明白为什么我不能在常规代码中复制规范行为。