0

也许是我对 rspec 不熟悉,但我不明白我的测试发生了什么。

我有 2 个类,一个叫做 Scrape,另一个 Result (creative) Scrape 是一个网络抓取类,它搜索一个站点并从页面中抓取结果,从每个类中创建一个新的 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 如果我使用 pry 并手动运行 #scrape_results 测试通过。

感谢您的时间、耐心和帮助,谢谢

4

1 回答 1

0

我注意到你在测试中通过@url#scrape_results。除非您在 describe 块或 test 块中定义该变量,否则它将nil在您的测试中。有可能因为@url可能不是nil来自您正在窥探的任何地方导致创建结果并通过测试的其他东西。

于 2020-06-10T21:16:33.800 回答