Как предотвратить создание функциональных тестовых случаев вызовами ActiveResource? - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть контроллер, который запускает запрос ActiveResource во время его выполнения.В этот запрос включен идентификатор, сгенерированный как часть выполнения моего контроллера (поэтому / a / b / {my_id} /c.xml, где my_id - это значениекоторый генерируется контроллером).

Я не хочу, чтобы мои тестовые примеры вызывали реальные живые запросы, но я также не хочу, чтобы вызовы не выполнялись (мне нужен ответ 200).

Я смотрел на HttpMock, который кажется хорошим решением, но он не позволяет использовать подстановочные знаки или регулярные выражения в блоке response_to (например), которые необходимы, потому что сгенерированный идентификатор является частью запроса.

Есть ли способ сделать это?Я искал, но еще ничего не видел, и документация HttpMock вообще не упоминает.

1 Ответ

0 голосов
/ 07 сентября 2011

Я бы порекомендовал или смоделировать вызовы веб-службы с помощью FakeWeb, или использовать традиционную насмешку на самом слое ActiveResource.

  require 'fakeweb'

  FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!")

  Net::HTTP.get(URI.parse("http://example.com/test1"))
  => "Hello World!"

... или насмешливую с Mocha:

  MyActiveResource.stubs(:create => true)
...