也许这是我对rspec的不熟悉,但我不知道我的测试正在进行什么。
我有2个类,一个叫做Scrape,另一个是Result(创意),Scrape是一个Web抓取类,它搜索站点并从页面抓取结果,并从每个页面创建一个新的Result实例。
结果实例存储在可通过Result.all访问的类变量数组中>
这在实际程序中实际上是可行的,但是当我尝试为此行为编写测试时,它会失败。
describe "#scrape_results" do it "accepts a url scrapes the page and creates a Result for each" do s = Scrape.new s.scrape_results(@url) expect(Result.all.count).not_to eq(0) end end
每次运行测试Result.all.count均为0如果我使用撬动并手动运行#scrape_results,则测试通过。
我感谢您的时间,耐心和帮助谢谢
也许是我对rspec缺乏了解,但我不了解我的测试正在发生什么。我有2个类别,一个叫做Scrape,另一个是Result(creative)Scrape是一个Web抓取类别...
我注意到您在测试中将@url
传递给#scrape_results
。除非您在describe块或测试块内定义该变量,否则它将在测试中为nil
。 @url
可能是您从任何地方撬起的nil
以外的东西,这会导致创建结果并通过测试。