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.