Дубликаты мини-юбки Rails на втором пробеге

В настоящее время я запускаю мини-юбку и минитест в очень простом приложении для рельсов 3.2. Проблема, с которой я сталкиваюсь, заключается в том, что если я объявлю два теста «it» в одном и том же предложении «describe», данные мини-юбки в методе установки будут созданы дважды. Я использую настройку, описанную Райаном Бейтсом в эпизоде ​​​​№ 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 не выполняет откат базы данных между тестами.


person codehugger    schedule 26.10.2012    source источник
comment
Как вы добавили минитест в свое приложение для рельсов? Вы использовали minitest-rails? Или ты его руками крутил?   -  person blowmage    schedule 26.10.2012
comment
Какой тип теста вы пишете, что видите такое поведение? Можете ли вы поделиться своим кодом?   -  person blowmage    schedule 26.10.2012
comment
Сейчас я только проверяю, возвращает ли Reservation.all все резервирования, упорядоченные по дате в обоих тестах, и сравниваю их с массивом из двух резервирований.   -  person codehugger    schedule 26.10.2012


Ответы (1)


Если вы используете «описать», используйте до и после:

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

person Kieran Andrews    schedule 26.10.2012