Week 2 Day 7

RSpec

What We Did and Learned

We continued by reading the RSpec Expectations for syntax and writing a test to fail when typing bundle i it should not raise an error. However, neither of us could get our test to fail, which is what we want.

We also did not know what and where Bundler.ui.error does. We learned how to quickly search for code in files by either using the tool ack or using the commandline grep.

grep -r "def ui" .

-r is short for recursive. This searches within the current directory and all directories within it with the words "def ui."

Jessica explained recursion. It is called recursion because it calls itself. One calls one and the return is the basecase.

def one(any_int)
  return any_int if any_int == 1
  one(any_int - 1)
end

We also learned that in Ruby convention, the name of the Class is the filename. Classes are CamelCaps and files are snake_case. Example: Class UI would have a file called ui.rb

Our coach, Jessica, poked around the specs in Bundler and found the Bundler test is handled differently. She directed us to how our test should look like. After implementing the correct test, we got our test to fail and we are working on getting it to pass.

require 'spec_helper'

describe "Argument Error when typing bundle i" do
  it "should not raise error" do
    bundle "i"
    expect(err).to be_empty
  end
end


Failures:

1) Argument Error when typing bundle i should not raise error
  Failure/Error: expect(err).to be_empty
   expected empty? to return true, got false
 # ./spec/bundle_i_spec.rb:6:in `block (2 levels) in <top (required)>'

Finished in 2.02 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/bundle_i_spec.rb:4 # Argument Error when typing bundle i should not raise error