tutorial rails matchers example context bot ruby rspec rspec3

ruby - rails - rspec tutorial



Rspec para tener(n).items método indefinido (1)

Los have_exactly have / have_exactly , have_at_least y have_at_most se eliminaron de RSpec 3. Ahora están en la rspec-collection_matchers separada rspec-collection_matchers .

O, como dice zishe, en lugar de instalar la gema, puedes usar eq lugar de have / have_exactly , y be >= lugar de have_at_least y be <= lugar de have_at_most .

Fuente: http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3

Estoy tratando de seguir una guía en code.tuts y sigo recibiendo un error.

Aquí está mi especificación de la biblioteca:

require ''spec_helper'' describe Library do before :all do lib_arr = [ Book.new("JavaScript: The Good Parts", "Douglas Crockford", :development), Book.new("Dont Make me Think", "Steve Krug", :usability), ] File.open "books.yml", "w" do |f| f.write YAML::dump lib_arr end end before :each do @lib = Library.new "books.yml" end describe "#new" do context "with no parameters" do it "has no book" do lib = Library.new expect(lib).to have(0).books end end context "with a yaml file name parameters" do it "has two books" do expect(@lib).to_have(0).books end end end it "returns all the books in a given category" do expect(@lib.get_books_in_category(:development).length).to eql 1 end it "accepts new books" do @lib.add_book(Book.new("Designing for the Web", "Mark Boulton", :design)) expect(@lib.get_book("Designing for the Web")).to be_an_instance_of Book end it "saves the library" do books = @lib.books.map { |book| book.title} @lib.save lib2 = Library.new ''books.yml'' books2 = lib2.books.map { |book| book.title } expect(books).to eql books2 end end

Lo que have es have está indefinido. He descubierto que son mis líneas

expect(@lib).to have(0).books expect(lib).to have(0).books

¿Mi sintaxis está desactualizada? He buscado en Google y no puedo encontrarlo.