Заглушки веб-звонков в Scala - PullRequest
3 голосов
/ 06 июня 2010

В настоящее время я пишу оболочку API метаданных Spotify для изучения Scala. Все хорошо и модно, но я бы хотел провести модульное тестирование кода. Чтобы сделать это правильно, мне нужно будет заглушить API Spotify и получить согласованные возвращаемые значения (например, популярность треков меняется очень часто).

Кто-нибудь знает, как заблокировать веб-вызовы в Scala, JVM в целом или с помощью какого-либо внешнего инструмента, который я мог бы подключить к своей настройке Maven?

PS Я в основном ищу что-то вроде FakeWeb Руби ...

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 07 июня 2010

Звучит так, будто вам нужна среда для насмешек, чтобы заглушить вызовы, связанные с Интернетом (и соответствующим образом наложить свое программное обеспечение, чтобы подключить либо реальную веб-среду, либо ваш смоделированный эквивалент). JMock и Mockito оба работают хорошо.

Вам нужно будет использовать их вместе с тестовой средой, такой как Junit или TestNG . Я использовал все это со Scala, и они работают как положено.

0 голосов
/ 14 июля 2017

Вы можете либо смоделировать свою службу данных (ту, которая фактически выполняет вызов), используя Mockito или другую фиктивную среду (см. Пример здесь: http://guilhebl.github.io/scala/backend/testing/2017/07/12/scala-play-test-mock-guice-inject/), или вы можете заблокировать Маршрутизатор, используя ложный результат, полученный от результирующий вызов вашего веб-сервиса:

https://www.playframework.com/documentation/2.6.x/ScalaTestingWebServiceClients

...