0

私はaと aOwnershipを持つモデルを持っており、私のモデルには次のコードがあります:start_dateend_date

def current?
  self.start_date.present? && self.end_date.nil?
end

今、私はテストしたいownership.current?

どうすればいいですか?ここで私が試したのは、期待を使用して...

describe "when owning and giving date are nil" do
  before do
    @ownership.agreed = true
    @ownership.save
    @ownership.update_attributes(start_date: nil, end_date: nil)
  end
  it { should be_valid }
  expect(@ownership.current?).to be_false

  describe "then product is owned" do
    before { @ownership.update_attributes(start_date: 1.day.ago) }

    it { should be_valid }
    expect(@ownership.current?).to be_true

    describe "then product is given" do
      before { @ownership.update_attributes(end_date: 1.hour.ago) }

      it { should be_valid }
      expect(@ownership.current?).to be_false
    end
  end
end

...しかし、うまくいきませんでした。に置き換えようとしましexpect(@ownership.current?).to be_false@ownership.current? { should be_false }が、うまくいきませんでした。

それを行う方法はありますか?

4

1 に答える 1

0

現在の2つの結果のみをテストしますか?

describe OwnerShip do
  it "#current? returns false" do
    ownership.current?.should be_false
  end

  context "when started and not yet ended" do
    it "#current? returns true" do
      ownership.start_date = Date.today
      ownership.end_date = nil
      ownership.current?.should be_true
    end
  end
end
于 2013-07-23T07:40:06.670 に答える