ruby rspec测试不工作

ruby rspec测试不工作,ruby,rspec,Ruby,Rspec,我在跟踪。视频创建了一个类 class Book end 测试规范/book_spec.rb如下所示: require "spec_helper" describe Book do before :each do @book = Book.new "Title","Author", :category end describe "#new" do it "returns a new book object" do

我在跟踪。视频创建了一个类

class Book

end
测试规范/book_spec.rb如下所示:

require "spec_helper"

describe Book do

    before :each do
        @book = Book.new "Title","Author", :category
    end

    describe "#new" do
        it "returns a new book object" do
            @book.should be_an_instance_of Book
        end
    end
end
作者通过了考试。对我来说失败了。我猜ruby有什么变化?或者可能是我在代码中找不到的打字错误。你能帮忙吗

这是我的结果。多谢各位

Failures:

  1) Book#new returns a new book object
     Failure/Error: @book = Book.new "Title","Author", :category
     ArgumentError:
       wrong number of arguments(3 for 0)
     # ./spec/book_spec.rb:6:in `initialize'
     # ./spec/book_spec.rb:6:in `new'
     # ./spec/book_spec.rb:6:in `block (2 levels) in <top (required)>'

Finished in 0.00058 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/book_spec.rb:11 # Book#new returns a new book object
故障:
1) Book#new返回一个新的Book对象
失败/错误:@book=book.new“Title”、“Author”、“category”
参数错误:
参数数目错误(3代表0)
#./spec/book_spec.rb:6:in'initialize'
#./spec/book_spec.rb:6:in'new'
#./spec/book_spec.rb:6:in'block(2层)in'
以0.00058秒完成
1例,1例失败
失败的示例:
rspec./spec/book_spec.rb:11#book#new返回一个新的book对象

很明显,您需要为
Book
类定义一个各自的构造函数来调用
Book.new
,并使用三个参数

上面的链接清楚地表明(查看文本记录):


我正在检查教程(),代码没有“错误”。本教程采用了TDD方法,因此一开始应该失败,然后在完成Book类的实现后,测试应该重新开始。完成教程…谢谢。该测试在不定义任何类属性和initialize函数的情况下为author工作。这对我不起作用。从教程:重新运行测试(rspec规范),您会发现它通过良好。我们没有初始化方法,所以现在调用Ruby#new没有效果。也许我只是读得不对。谢谢。您引用的内容是指尚未创建Book类的部分。如果您进一步阅读,author clear声明:“这些将失败,所以这是Book使它们通过的代码。”然后创建initialize和accessor。再一次,我建议你完成教程。谢谢你的时间。我现在明白了。其他人也遇到了同样的问题。请参阅本页底部的两条注释。我想教程可以澄清一点。我还应该得到一个“-1”?:)好吧,我+1'ed,虽然每个声称基于一半成分的“错误配方”的人都应该得到一块硬肉而不是美味的牛排:-)好的。我承认自己“没有耐心”,在发帖前也没有尽全力:(“真理是强大的,它会占上风。这没什么问题,只是事实并非如此。”-马克·吐温。〈\N〉 我希望我的回答是有帮助的,并祝你一切顺利:-)
# These will fail, so here’s the code for Book to make them pass:

class Book
    attr_accessor :title, :author, :category
        def initialize title, author, category
            @title = title
            @author = author
            @category = category
        end
end