Вопрос

Я использую огурец в качестве BDD Framework с издевателем RSPEC / Mocha. В идеале мы бы не высмеивали / острую поведение в спецификациях огурцов; Однако сценарий здесь исключительный. Дать вам краткое представление о проблеме здесь; У меня есть два особенности функции продукта и корзина.

Функция

Корзина в настоящее время насмемования некоторых продуктов Fetch из 3 Party System. А в CUCUMEN Run Cart функция работает до функции продукта. Функция продукта использует реальный вызов для некоторых сценариев. В идеале мы ожидали, что кломы уровня класса, такие как Product.Stub (: find), будут очищены после завершения сценариев; Однако это не так. Уровень класса Уровень задерживается на следующий сценарий огурца и мешать вызову.

Я взаимозаменяемо использовал Mocha и RSPEC, чтобы вызвать заглушки; но безрезультатно; В любом случае заглушка остается и предотвращает функцию моей продукции для выполнения функции тележки. Они оба бегают в изоляции.

Кто-нибудь столкнулся с аналогичным выпуском заглушек, не сбрасываемых в огурце? Есть ли способ, я могу восстановить оригинальное поведение класса?

Любая помощь будет оценена.

Приветствия

Это было полезно?

Решение

Для интеграции Mocha вы должны добавить следующее в файл в папке функций / поддержки (например, mocha.rb)

require "mocha"

World(Mocha::Standalone)

Before do
  mocha_setup
end

After do
  begin
    mocha_verify
  ensure
    mocha_teardown
  end
end
.

После блока должен освободить все издевательства.

Источник: http://gist.github.com/80554

Другие советы

Синтаксис немного отличается для Mocha 1.1:

require 'mocha/api'

World(Mocha::API)

Before do
  mocha_setup
end

After do
  begin
    mocha_verify
  ensure
    mocha_teardown
  end
end
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top