35

我已经阅读了一些关于如何组织 rspec 代码的内容。似乎“上下文”更多地用于对象的状态。用您的话来说,您将如何描述如何在 rspec 代码中使用“描述”?

这是我的 movie_spec.rb 代码片段:

require_relative 'movie'

describe Movie do

    before do
        @initial_rank = 10
        @movie = Movie.new("goonies", @initial_rank)
    end


    it "has a capitalied title" do
        expect(@movie.title) == "Goonies"
    end


    it "has a string representation" do
        expect(@movie.to_s).to eq("Goonies has a rank of 10")
    end

    it "decreases rank by 1 when given a thumbs down" do
        @movie.thumbs_down
        expect(@movie.rank).to eq(@initial_rank - 1)
    end

    it "increases rank by 1 when given a thumbs up" do
        @movie.thumbs_up
        expect(@movie.rank).to eq(@initial_rank + 1)
    end

    context "created with a default rank" do
        before do
            @movie = Movie.new("goonies")
        end

        it "has a rank of 0" do
            expect(@movie.rank).to eq(5)
        end
    end
4

1 回答 1

43

describe和之间没有太大区别context。区别在于可读性。context当我想根据条件分离规格时,我倾向于使用。我describe用来分隔正在测试的方法或正在测试的行为。

在最新的 RSpec 中发生的一个主要变化是“上下文”不能再用作顶级方法

于 2014-10-21T01:28:33.043 回答