Sha256: 08706ac9749523ef6ef72036d1d9a4d6ba94f8975d88e3ee893b6bcc7b7c8eca
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
##################################################################### # wc_spec.rb # # Specs for the File.wc method. These specs should be run via # the 'rake wc' task. ##################################################################### require 'rspec' require 'ptools' RSpec.describe File, :wc do let(:test_file) { 'test_file_wc.txt' } before do File.open(test_file, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } } end example "wc method basic functionality" do expect(File).to respond_to(:wc) expect{ File.wc(test_file) }.not_to raise_error end example "wc accepts specific optional arguments" do expect{ File.wc(test_file, 'bytes') }.not_to raise_error expect{ File.wc(test_file, 'chars') }.not_to raise_error expect{ File.wc(test_file, 'words') }.not_to raise_error expect{ File.wc(test_file, 'lines') }.not_to raise_error end example "argument to wc ignores the case of the option argument" do expect{ File.wc(test_file, 'LINES') }.not_to raise_error end example "wc with no option returns expected results" do expect(File.wc(test_file)).to be_kind_of(Array) expect(File.wc(test_file)).to eq([166, 166, 25, 25]) end example "wc with bytes option returns the expected result" do expect(File.wc(test_file, 'bytes')).to eq(166) end example "wc with chars option returns the expected result" do expect(File.wc(test_file, 'chars')).to eq(166) end example "wc with words option returns the expected result" do expect(File.wc(test_file, 'words')).to eq(25) end example "wc with lines option returns the expected result" do expect(File.wc(test_file, 'lines')).to eq(25) end example "wc requires at least on argument" do expect{ File.wc }.to raise_error(ArgumentError) end example "an invalid option raises an error" do expect{ File.wc(test_file, 'bogus') }.to raise_error(ArgumentError) end after do File.delete(test_file) if File.exists?(test_file) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ptools-1.4.2 | spec/wc_spec.rb |
ptools-1.4.1 | spec/wc_spec.rb |
ptools-1.4.0 | spec/wc_spec.rb |