0

我目前正在一个非常基本的 rails 3.2 应用程序中运行 miniskirt 和 minitest。我遇到的问题是,如果我在同一个“describe”子句中声明两个“it”测试,那么 setup 方法中的迷你裙数据会被创建两次。我正在使用 Ryan Bates 在第 327 集中概述的设置。

def setup
    @res_a = Factory(:reservation)
    @res_b = Factory(:reservation)
end

当我使用 rake test 运行测试时。我在第一次测试中总共得到 2 个预订,然后在第二次测试中得到 4 个。

有任何想法吗?

更新:

这是我正在运行的测试的示例

it "should return all reservations for a given date" do
  Reservation.for_date(Time.mktime(2012, 1, 1)).all.count.must_equal 2
end

如果我用两种不同的 it 方法运行上面的测试,那么第二种方法会失败,因为实际计数是 4。所以在我看来 Miniskirt 并没有在测试之间回滚数据库。

4

1 回答 1

0

如果使用“描述”,请在前后使用:

http://old.rspec.info/documentation/before_and_after.html

=== 规格

  require 'minitest/autorun'

  describe Meme do
    before do
      @meme = Meme.new
    end

    describe "when asked about cheeseburgers" do
      it "must respond positively" do
        @meme.i_can_has_cheezburger?.must_equal "OHAI!"
      end
    end

https://github.com/seattlerb/minitest

于 2012-10-26T05:15:53.593 回答